gpt4 book ai didi

python - 使用 PyPDF2 批量旋转 PDF 文件

转载 作者:太空宇宙 更新时间:2023-11-04 09:53:20 31 4
gpt4 key购买 nike

我一直在编写代码来批量旋转文件夹内的 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)

关于python - 使用 PyPDF2 批量旋转 PDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46921452/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com