【发布时间】:2018-07-25 18:17:10
【问题描述】:
我有一个由 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
【问题讨论】:
-
Docx 是二进制格式。您首先需要从 word 导出为文本格式。我从未将它用于工作,但例如 xlsx 可以导出为 CSV
-
你说得对,处理docx格式先解决问题
标签: python-3.x docx finereader