1

我有一个由 FineReader 创建的 docx 文件(FineReader 获取一个 pdf 文件并使用 pdf 中的文本创建一个文本文件)。现在我想使用 python3 读取文件。我用了:

with open('file.docx') as file:
    for line in file:
        print(line)

这就是结果:

at \'ed og \'fd \'fattalast uj; at \'f3 \'fattalast sum ou og \'fa sum yv, ei sum aj, at g og k hava

这是我在文本编辑器中打开 docx 文件时文本的样子:

at í og ý úttalast uj; at ó úttalast sum ou og ú sum yv, ei sum aj, at g og k hava

知道如何解决此编码问题吗?


顺便提一句。我还尝试了以下方法:

with open('file.docx', encoding='latin-1') as file:
    for line in file:
        l = line.encode("utf-8")
        print(l)

这就是结果:

at \\'ed og \\'fd \\'fattalast uj; at \\'f3 \\'fattalast sum ou og \\'fa sum yv, ei sum aj, at g og k hava

我试过这个:

import unicodedata
with open('file.docx') as file:
    for line in file:
        unicode = unicodedata.normalize('NFC', line)
        print(unicode)

并得到:

at \'ed og \'fd \'fattalast uj; at \'f3 \'fattalast sum ou og \'fa sum yv, ei sum aj, at g og k hava
4

1 回答 1

1

通过使用以下内容打开文档解决了问题:

import unicodedata
import docx

doc = docx.Document("file.docx")
for p in doc.paragraphs:
    unicode = unicodedata.normalize('NFC', p.text)
    print(unicode)
于 2018-07-25T18:42:40.267 回答