将 Docx 转换为纯文本

Converting Docx to pure text

我正在尝试将 docx 文件转换为文本,但一直出现错误。我正在使用 python 2-7

import docx

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

回溯:

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

看起来它不喜欢 \u2019,可能也不喜欢 \u2018。这些是左右单引号。我将 unicode 数据编码为 ascii 并忽略它无法转换的任何内容以删除它们:

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)

正确的单引号似乎有问题。你能做类似的事情吗:

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)

来自我的 phone 的回复,所以我无法测试。