DOCX файл в Python в правильном формате

У меня есть файл DOCX, созданный FineReader (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

Любая идея, как исправить эту проблему кодирования?


Btw. Я также попробовал следующее:

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

1 ответ

Проблема была решена открытием документа со следующим:

import unicodedata
import docx

doc = docx.Document("file.docx")
for p in doc.paragraphs:
    unicode = unicodedata.normalize('NFC', p.text)
    print(unicode)
Другие вопросы по тегам