我一直在研究将文件夹内的pdf文件批量旋转的代码,但是我找不到一种方法来迭代和更改旋转文件的目标文件夹,我的目的是将相同名称的新文件保存在另一个文件夹,谢谢
import PyPDF2
from os import listdir
di = "C:\z_PruebPy\pdf"
archs = []
listarch = []
loc = r"C:/z_PruebPy/pdf/"
for x in listdir(di):
archs.append(loc+x)
for arch in listarch:
pdf_in = open(arch, 'rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_in)
pdf_writer = PyPDF2.PdfFileWriter()
for pagenum in range(pdf_reader.numPages):
page = pdf_reader.getPage(pagenum)
page.rotateClockwise(270)
pdf_writer.addPage(page)
pdf_out = open(arch, 'wb') #????????
pdf_writer.write(pdf_out)
pdf_out.close()
pdf_in.close()
您必须给PdfFileWriter一个指向新位置的文件指针。另外,您无需创建列表并在列表上进行迭代,只需对os.listdir
结果进行迭代即可。最后,您有了未使用的变量,例如loc
。我整理了一下您的代码。
因此,假设您创建了输出文件夹,这应该可以工作:
from PyPDF2 import PdfFileReader, PdfFileWriter
from os import listdir
input_dir = "C:\\z_PruebPy\\pdf\\"
output_dir = "C:\\z_PruebPy\\output_pdf\\"
for x in listdir(input_dir):
if not x.endswith('.pdf'):
continue
pdf_in = open(input_dir + x, 'rb')
pdf_reader = PdfFileReader(pdf_in)
pdf_writer = PdfFileWriter()
for pagenum in range(pdf_reader.numPages):
page = pdf_reader.getPage(pagenum)
page.rotateClockwise(270)
pdf_writer.addPage(page)
pdf_out = open(output_dir + x, 'wb')
pdf_writer.write(pdf_out)
pdf_out.close()
pdf_in.close()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句