【问题标题】:Opening File Using a Variable that Contains File Name Python使用包含文件名 Python 的变量打开文件
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多