【发布时间】:2019-12-09 11:41:40
【问题描述】:
尝试读取名称可能会更改的 pdf 文件,但是我有一个包含文件名的初步脚本。所以我成功地将该文件名保存到一个变量中,但是当我尝试使用该变量打开一个文件时出现错误:“ValueError: embedded null byte”
我已经尝试了几个解决方案,例如我尝试使用这个solution,但是我收到了同样的错误。我已经确定了使用 glob 的解决方法,因为我可以预测文件名(我知道总会有一个 PDF),但是如果可能的话,我想尽量避免使用这个解决方案,以防将来我们有多个 PDF 需要处理。
这就是我所拥有的:
pdfFileName = pdfFileName[132:220] # File path is correct, I have confirmed
objectPDF = open(pdfFileName,'rb')
pdfReader = PyPDF2.PdfFileReader(objectPDF)
pageObj = pdfReader.getPage(0)
print(pageObj.extractText())
我的错误是:
Traceback (most recent call last):
File "verify.py", line 48, in <module>
objectPDF = open(pdfFileName,'rb')
ValueError: embedded null byte
我想要将 pdf 的文本输出到控制台。错误肯定与我读取文件的方式有关,如果我在其中硬键入文件路径,它会按预期工作,但当变量使用与字符串完全相同的值时则不会。
【问题讨论】:
-
你遇到了什么错误?
-
ValueError: embedded null byte 抱歉,在我的问题中必须在编辑时意外删除。我会把它放进去。@Axium
-
文件名中似乎有“空值”。这篇文章:lucumr.pocoo.org/2010/12/24/common-mistakes-as-web-developer 可以帮助修复它。我没有发布答案,因为我不知道如何解决它。
-
另外,在
objectPDF = open(pdfFileName,'rb'):pdfFileName = pdfFileName.replace('\0','')之前尝试使用它。我不太确定它是否会起作用,但值得一试。 -
我会把它作为答案。
标签: python file variables valueerror pypdf2