用于拆分多页PDF的Python脚本适用于某些PDF,而不适用于其他PDF



我在Windows中使用以下脚本来拆分多页PDF。脚本看起来像这样...

from PyPDF2 import PdfFileWriter, PdfFileReader
inputpdf = PdfFileReader(open("*pathToPDF**”, "rb"))
for i in range(inputpdf.numPages):
output = PdfFileWriter()
output.addPage(inputpdf.getPage(i))
with open("document-page%s.pdf" % i, "wb") as outputStream:
output.write(outputStream)

我正在将pathToPDF替换为要即时拆分的多页PDF的路径。

我用九页 91kb PDF 让它工作正常,但是当我尝试使用 232 页 1.62gb PDF 时,它会抛出以下错误......

回溯(最近一次调用(:文件 "C:\MySplitFolder\splitPDFwindows.py",第 3 行,输入pdf = PdfFileReader(open("C:\MySplitFolder\1973PB1PhyOfficeParkingBldg_CD.pdf", "rb"(( OSError: [Errno 22] 无效参数: 'C:\MySplitFolder\x01973PB1PhyOfficeParkingBldg_CD.pdf'

这是小pdf的第3行代码...

inputpdf = PdfFileReader(open("C:MySplitFolderBestInCategory_JR 2.pdf", "rb"))

这是大pdf的第3行代码...

inputpdf = PdfFileReader(open("C:MySplitFolder1973PB1PhyOfficeParkingBldg_CD.pdf", "rb"))

文档名称是执行时 2 个脚本之间的唯一区别。虽然错误说明了无效的参数,但除了文档名称外,我没有看到 2 行之间的任何区别。文件大小有问题吗?

任何帮助将不胜感激。

您提供的路径是C:MySplitFolder1973PB1PhyOfficeParking,但错误消息显示路径C:MySplitFolderx01973PB1PhyOfficeParking。请注意第二个的额外x0

Python 假设是一个转义字符,并将197视为转义序列,将其替换为等效的 ASCII 字符。

要解决此问题,请告诉 python 将路径视为原始字符串,方法是在它前面加上r

inputpdf = PdfFileReader(open(r"C:MySplitFolder1973PB1PhyOfficeParkingBldg_CD.pdf", "rb"))

第一个文件工作的原因是,在python中,"所有无法识别的转义序列都保留在字符串中不变"。因此,MB都无法识别并保持不变。因此,导致路径字符串意外正确!

最新更新