我一直在编写用于批量旋转文件夹内的 PDF 文件的代码,但我找不到迭代和更改旋转文件的目标文件夹的方法。
我的目的是将新文件以相同的名称保存在另一个文件夹中。
from os import listdir
from PyPDF2 import PdfReader, PdfWriter
# Collect files
root = "C:\z_PruebPy\pdf"
archs = []
for x in listdir(root):
archs.append(root + x)
# Batch rotate
for arch in archs:
pdf_in = open(arch, "rb")
reader = PdfReader(pdf_in)
writer = PdfWriter()
for page in reader.pages:
page.rotate_clockwise(270)
writer.add_page(page)
with open(arch, "wb") as pdf_out: # ????????
writer.write(pdf_out)
pdf_in.close()
您必须为 PdfFileWriter 提供一个指向新位置的文件指针。
另外,您不需要创建列表并迭代列表,只需迭代os.listdir
结果。
最后你有了未使用的变量,比如loc
。
我清理了一下你的代码。
因此,假设您创建输出文件夹,这应该可行:
from os import listdir
from PyPDF2 import PdfReader, PdfWriter
input_dir = "C:\\z_PruebPy\\pdf\\"
output_dir = "C:\\z_PruebPy\\output_pdf\\"
for fname in listdir(input_dir):
if not fname.endswith(".pdf"): # ignore non-pdf files
continue
reader = PdfReader(input_dir + fname)
writer = PdfWriter()
for page in reader.pages:
# page.rotate_clockwise(270) # (before pypdf3.0 - deprecated - thanks to Maciejg for the update)
page.rotate(270)
writer.add_page(page)
with open(output_dir + fname, "wb") as pdf_out:
writer.write(pdf_out)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)