Как я могу преобразовать файл с любым форматом в текстовый формат с помощью Python 3.6?
Я пытаюсь иметь конвертер, который может конвертировать любой файл любого формата в текст, так что обработка становится легче для меня. Я использовал библиотеку textract
Python.
Вот документация: https://textract.readthedocs.io/en/stable/
Я установил его с помощью pip
и попытался его использовать. Но получил ошибку и не мог понять, как ее решить.
>>> import textract
>>> text = textract.process('C:\Users\beta\Desktop\Projects Done With Specification.pdf', method='pdfminer')
File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
Даже я попытался использовать команду без указания метода.
>>> import textract
>>> text = textract.process('C:\Users\beta\Desktop\Projects Done With Specification.pdf')
File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
Пожалуйста, дайте мне знать, как я могу избавиться от этой проблемы с вашим предложением. Если это возможно, пожалуйста, предложите мне решение, если есть что-то еще, что может быть удобно, а не textract
, тогда вы можете мне предложить. Я хотел бы услышать.
Символ \
означает разные вещи в разных контекстах. В путях Windows это разделитель каталогов. В строках Python он вводит escape-последовательности. При указании путей вы должны учитывать это.
Попробуйте любой из них:
text = textract.process('C:\\Users\\beta\\Desktop\\Projects Done With Specification.pdf', method='pdfminer')
text = textract.process(r'C:\Users\beta\Desktop\Projects Done With Specification.pdf', method='pdfminer')
text = textract.process('C:/Users/beta/Desktop/Projects Done With Specification.pdf', method='pdfminer')
Проблема в том, что строка
'C:\Users\beta\Desktop\Projects Done With Specification.pdf'
\U запускает escape-код Unicode с восемью символами, например '\ U00014321'. В вашем коде побег сопровождается символом 's', который является недопустимым.
Вам либо нужно дублировать все обратные косые черты, либо префикс строки с r (для создания необработанной строки).
В вашем случае ошибка связана с неверным путем. Попробуйте это, и он работает: "C:\Users\beta\Desktop\Projects Done With Specification.pdf" или "C: /Users/beta/Desktop/Projects Done With Specification.pdf '
Попробуйте encoding='utf-8'
textract.process('C:\Users\beta\Desktop\Projects Done With Specification.pdf', encoding='utf-8')