代码之家  ›  专栏  ›  技术社区  ›  Fletchy1995

使用包含文件名的变量读取文件

  •  2
  • Fletchy1995  · 技术社区  · 7 年前

    试图读取一个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 回复  |  直到 7 年前
        1
  •  1
  •   Axiumin_    7 年前

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

    这段代码的作用是从字符串中删除所有“nulls”,从而允许所有内容正常运行。