Как я могу преобразовать файл с любым форматом в текстовый формат с помощью Python 3.6?

-4

Я пытаюсь иметь конвертер, который может конвертировать любой файл любого формата в текст, так что обработка становится легче для меня. Я использовал библиотеку 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, тогда вы можете мне предложить. Я хотел бы услышать.

спросил(а) 2021-01-28T01:45:28+03:00 2 месяца, 2 недели назад
1
Решение
75

Символ \ означает разные вещи в разных контекстах. В путях 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')

ответил(а) 2021-01-28T01:45:28+03:00 2 месяца, 2 недели назад
62

Проблема в том, что строка

'C:\Users\beta\Desktop\Projects Done With Specification.pdf'

\U запускает escape-код Unicode с восемью символами, например '\ U00014321'. В вашем коде побег сопровождается символом 's', который является недопустимым.

Вам либо нужно дублировать все обратные косые черты, либо префикс строки с r (для создания необработанной строки).

ответил(а) 2021-01-28T01:45:28+03:00 2 месяца, 2 недели назад
44

В вашем случае ошибка связана с неверным путем. Попробуйте это, и он работает: "C:\Users\beta\Desktop\Projects Done With Specification.pdf" или "C: /Users/beta/Desktop/Projects Done With Specification.pdf '

ответил(а) 2021-01-28T01:45:28+03:00 2 месяца, 2 недели назад
44

Попробуйте encoding='utf-8'

textract.process('C:\Users\beta\Desktop\Projects Done With Specification.pdf', encoding='utf-8')

ответил(а) 2021-01-28T01:45:28+03:00 2 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема