【问题标题】:docx file to python in correct format以正确格式将 docx 文件转换为 python
【发布时间】: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


【解决方案1】:

问题已通过以下方式打开文档解决:

import unicodedata
import docx

doc = docx.Document("file.docx")
for p in doc.paragraphs:
    unicode = unicodedata.normalize('NFC', p.text)
    print(unicode)

【讨论】:

    猜你喜欢
    • 2011-06-14
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    相关资源
    最近更新 更多