我正在尝试使用可以将任何格式的文件转换为文本的转换器,这样我的处理就变得更容易了。我使用过Python textract
库
以下是文档: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
,那么你仍然可以建议我。我想听听。
答案 0 :(得分:2)
\
字符在不同的上下文中表示不同的东西。在Windows路径名中,它是目录分隔符。在Python字符串中,它引入了转义序列。指定路径时,您必须考虑到这一点。
尝试以下任何一种方法:
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')
答案 1 :(得分:1)
问题在于字符串
'C:\Users\beta\Desktop\Projects Done With Specification.pdf'
\ U启动一个八字符的Unicode转义符,例如&#39; \ U00014321`。在你的代码中,转义后面跟着字符&#39;,这是无效的。
您需要复制所有反斜杠,或者在字符串前加上r(以生成原始字符串)。
答案 2 :(得分:0)
尝试encoding='utf-8'
textract.process('C:\Users\beta\Desktop\Projects Done With Specification.pdf', encoding='utf-8')
答案 3 :(得分:0)
在您的情况下,错误是由于路径无效。 试试这个,它的工作原理: 'C:\ Users \ beta \ Desktop \ Projects使用Specification.pdf完成' “要么” 'C:/ Users / beta / Desktop / Projects Done with Specification.pdf'