使用包含文件名Python

时间:2019-07-31 22:11:53

标签: python file variables valueerror pypdf2

尝试读取名称可能会更改的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文本输出到控制台。错误是我读取文件的方式,如果我硬键入其中的文件路径可以按预期工作,但是当使用与字符串完全相同的值的变量时,该错误就不会出现。

1 个答案:

答案 0 :(得分:1)

将其放置在pdfFileName = pdfFileName.replace('\0','')之前:objectPDF = open(pdfFileName,'rb')

该代码的作用是从字符串中删除所有“ null”,从而使所有内容都能正常运行。