2017-06-24 1 views
0

J'essaie de convertir des fichiers docx en texte mais je continue à recevoir une erreur. J'utilise python 2-7Conversion de Docx en texte pur

import docx 

def getText(filename): 
    doc = docx.Document(filename) 
    fullText = [] 
    for para in doc.paragraphs: 
     fullText.append(para.text) 
    return '\n'.join(fullText) 

Traceback:

return codecs.charmap_encode(input,errors,encoding_map) 
UnicodeEncodeError: 'charmap' codec can't encode character u'\u2019' in position 764: character maps to <undefined> 

Répondre

1

On dirait qu'il n'aime pas \ u2019 et probablement \ u2018 soit. Ce sont les guillemets simples gauche et droit. J'encode les données à ascii et unicode ignorer tout ce qu'il ne peut pas convertir afin de les supprimer:

import docx 

def getText(filename): 
    doc = docx.Document(filename) 
    fullText = [] 
    for para in doc.paragraphs: 
     txt = para.text.encode('ascii', 'ignore') 
     fullText.append(txt) 
    return '\n'.join(fullText) 
0

On dirait un problème avec cette citation simple droit. Pouvez-vous faire quelque chose comme:

import docx 

def getText(filename): 
    doc = docx.Document(filename) 
    new_doc = doc.replace(u"\u2019", "'") 
    fullText = [] 
    for para in new_doc.paragraphs: 
     fullText.append(para.text) 
    return '\n'.join(fullText) 

Répondre à partir de mon téléphone, donc je ne peux pas tester.