Чтение файлов .doc в python в Windows 10

Примечание. Это было помечено как потенциальный дубликат this, но смысл моего вопроса заключается в том, что использование texttract не работает. Я ищу либо (а) способ заставить texttract работать в Windows 10, либо (б) альтернативное решение.

Я создаю систему, которая должна читать различные типы файлов. Я настроил pdfminer для чтения .pdf и основываясь на процессе, описанном здесь Я установил texttract и теперь также могу читать файлы .docx. Однако texttract полагается на антислово для чтения файлов .doc, и я не могу заставить его работать, даже следуя инструкциям здесь Мне не удалось найти и установить рабочую версию антиворда. На моем компьютере не установлено Microsoft Word, и я использую Windows 10 с Python 3.6.5. Есть ли другой способ читать файлы .doc?

Вот ошибка при запуске texttract.process('d.doc') (не обращайте внимания на первую ошибку, файл точно есть):

Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\site-packages\textract\parsers\utils.py", line 84, in run
    stdout=subprocess.PIPE, stderr=subprocess.PIPE,
  File "C:\ProgramData\Anaconda3\lib\subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "C:\ProgramData\Anaconda3\lib\subprocess.py", line 997, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\ProgramData\Anaconda3\lib\site-packages\textract\parsers\__init__.py", line 77, in process
    return parser.process(filename, encoding, **kwargs)
  File "C:\ProgramData\Anaconda3\lib\site-packages\textract\parsers\utils.py", line 46, in process
    byte_string = self.extract(filename, **kwargs)
  File "C:\ProgramData\Anaconda3\lib\site-packages\textract\parsers\doc_parser.py", line 9, in extract
    stdout, stderr = self.run(['antiword', filename])
  File "C:\ProgramData\Anaconda3\lib\site-packages\textract\parsers\utils.py", line 91, in run
    ' '.join(args), 127, '', '',
textract.exceptions.ShellError: The command antiword d.doc failed with exit code 127

person tigerninjaman    schedule 17.08.2018    source источник


Ответы (2)


Из серии «Проблема установки Windows»: https://github.com/deanmalmgren/textract/issues/194#issuecomment-507243521

Выполнив шаги по «установке» антислова, я столкнулся с той же проблемой, что и ваша.

Перезапуск Windows после настройки переменной пути к среде полностью устранил это точное сообщение об ошибке для меня. (Это была последняя ошибка, с которой я столкнулся при обработке файлов .doc с помощью texttract)


Инструкции по установке извлечены из https://github.com/deanmalmgren/textract/issues/194#issuecomment-506065817

«Установите Antiword (я выполнил чтение файла .doc в Python с использованием антислова в Windows (также .docx))

  • Перейдите по адресу https://www.softpedia.com/get/Office-tools/Other-Office-Tools/Antiword.shtml
  • Распаковать в c:\antiword (да, он должен быть в корневом каталоге)
  • Добавьте местоположение к пути, как мы сделали tesseract-ocr [в основном добавьте c:\antiword к системному пути (переменная среды)]"
person Marcelo d'Almeida    schedule 01.07.2019

Я смог получить часть текста с помощью olefile, но olefile в конечном итоге обрабатывает только байты и не обрабатывает кодировку файлов Word .doc. Решение состоит в том, чтобы использовать LibreOffice, см. мой другой вопрос здесь

person tigerninjaman    schedule 22.08.2018