使用 for 循环使用 PyPDF2 模块合并多个 PDF
merge multiple PDF's using PyPDF2 module using for loop
我是 python 的新手,试图将作为参数传递的多个 pdf 合并到带有 PyPDF2 模块的单个 pdf,但结果我得到一个空的 pdf 文件
,我的代码如下
import os,sys,PyPDF2
pdf_write_object=PyPDF2.PdfFileWriter()
for i in sys.argv[1:]:
file_object=open(i,'rb')
pdf_read_object=PyPDF2.PdfFileReader(file_object)
print('processing file : '+ i + 'number of pages : ' + str(pdf_read_object.numPages))
for page in range(pdf_read_object.numPages):
pdf_write_object.addPage(pdf_read_object.getPage(page))
file_object.close()
final_file_object=open('final_PyPDF2.pdf','wb')
pdf_write_object.write(final_file_object)
final_file_object.close()
尝试使用 with 语句也仍然是相同的结果
#!/usr/bin/python3
import os,sys,PyPDF2
pdf_write_object=PyPDF2.PdfFileWriter()
for i in sys.argv[1:]:
with open(i,'rb') as file_object:
pdf_read_object=PyPDF2.PdfFileReader(file_object)
print('processing file : '+ i + 'number of pages : ' + str(pdf_read_object.numPages))
for page in range(pdf_read_object.numPages):
pdf_write_object.addPage(pdf_read_object.getPage(page))
final_file_object=open('final_PyPDF2.pdf','wb')
pdf_write_object.write(final_file_object)
final_file_object.close()
虽然在 python 终端上对单个文件使用上述方法效果一样好,但我在 for 循环中遗漏了一些东西,有人可以指导一下吗。
不要打开要阅读的文件。 PdfFileReader()
可以自动完成并且代码可以工作:
#!/usr/bin/python3
import sys
import PyPDF2
pdf_write_object = PyPDF2.PdfFileWriter()
for i in sys.argv[1:]:
pdf_read_object = PyPDF2.PdfFileReader(i)
print('processing file : '+ i + 'number of pages : ' + str(pdf_read_object.numPages))
for page in range(pdf_read_object.numPages):
pdf_write_object.addPage(pdf_read_object.getPage(page))
final_file_object = open('final_PyPDF2.pdf', 'wb')
pdf_write_object.write(final_file_object)
final_file_object.close()
我是 python 的新手,试图将作为参数传递的多个 pdf 合并到带有 PyPDF2 模块的单个 pdf,但结果我得到一个空的 pdf 文件 ,我的代码如下
import os,sys,PyPDF2
pdf_write_object=PyPDF2.PdfFileWriter()
for i in sys.argv[1:]:
file_object=open(i,'rb')
pdf_read_object=PyPDF2.PdfFileReader(file_object)
print('processing file : '+ i + 'number of pages : ' + str(pdf_read_object.numPages))
for page in range(pdf_read_object.numPages):
pdf_write_object.addPage(pdf_read_object.getPage(page))
file_object.close()
final_file_object=open('final_PyPDF2.pdf','wb')
pdf_write_object.write(final_file_object)
final_file_object.close()
尝试使用 with 语句也仍然是相同的结果
#!/usr/bin/python3
import os,sys,PyPDF2
pdf_write_object=PyPDF2.PdfFileWriter()
for i in sys.argv[1:]:
with open(i,'rb') as file_object:
pdf_read_object=PyPDF2.PdfFileReader(file_object)
print('processing file : '+ i + 'number of pages : ' + str(pdf_read_object.numPages))
for page in range(pdf_read_object.numPages):
pdf_write_object.addPage(pdf_read_object.getPage(page))
final_file_object=open('final_PyPDF2.pdf','wb')
pdf_write_object.write(final_file_object)
final_file_object.close()
虽然在 python 终端上对单个文件使用上述方法效果一样好,但我在 for 循环中遗漏了一些东西,有人可以指导一下吗。
不要打开要阅读的文件。 PdfFileReader()
可以自动完成并且代码可以工作:
#!/usr/bin/python3
import sys
import PyPDF2
pdf_write_object = PyPDF2.PdfFileWriter()
for i in sys.argv[1:]:
pdf_read_object = PyPDF2.PdfFileReader(i)
print('processing file : '+ i + 'number of pages : ' + str(pdf_read_object.numPages))
for page in range(pdf_read_object.numPages):
pdf_write_object.addPage(pdf_read_object.getPage(page))
final_file_object = open('final_PyPDF2.pdf', 'wb')
pdf_write_object.write(final_file_object)
final_file_object.close()