我在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中,"所有无法识别的转义序列都保留在字符串中不变"。因此,M
和B
都无法识别并保持不变。因此,导致路径字符串意外正确!