python 代码 遍历一个文件夹内所有文件 判断pdf文件的最后两页是否为竖向,如果为竖向,则顺时针旋转90度,如果为横向,则不变,最后保存
时间: 2024-04-16 17:24:12 浏览: 122
使用python检测一个文件夹下的所有PDF一共有多少页
以下是一个示例的 Python 代码,用于遍历一个文件夹中的所有文件,并判断 PDF 文件的最后两页是否为竖向。如果是竖向,则将其顺时针旋转90度,并保存。
```python
import os
from PyPDF2 import PdfFileReader, PdfFileWriter
def rotate_pdf_pages(filepath):
pdf_reader = PdfFileReader(open(filepath, 'rb'))
num_pages = pdf_reader.getNumPages()
# 判断最后两页的方向
last_page = pdf_reader.getPage(num_pages - 1)
second_last_page = pdf_reader.getPage(num_pages - 2)
last_page_orientation = last_page.get('/Rotate', 0) % 360
second_last_page_orientation = second_last_page.get('/Rotate', 0) % 360
if last_page_orientation in [0, 180] and second_last_page_orientation in [0, 180]:
# 最后两页为竖向,需要旋转
last_page.rotateClockwise(90)
second_last_page.rotateClockwise(90)
# 创建新的 PDF 写入器并保存旋转后的文件
output_pdf = PdfFileWriter()
for page_num in range(num_pages - 2):
page = pdf_reader.getPage(page_num)
output_pdf.addPage(page)
output_pdf.addPage(second_last_page)
output_pdf.addPage(last_page)
# 获取原文件名并在文件名前添加 'rotated_' 前缀
filename = os.path.basename(filepath)
new_filename = 'rotated_' + filename
with open(new_filename, 'wb') as output_file:
output_pdf.write(output_file)
print(f"成功旋转并保存文件: {new_filename}")
else:
print("最后两页不需要旋转")
# 遍历文件夹中的所有文件
folder_path = '/path/to/folder'
for filename in os.listdir(folder_path):
filepath = os.path.join(folder_path, filename)
if os.path.isfile(filepath) and filename.endswith('.pdf'):
rotate_pdf_pages(filepath)
```
请确保安装了 `PyPDF2` 库(通过 `pip install PyPDF2` 安装)。同时,将 `'/path/to/folder'` 替换为实际的文件夹路径。
阅读全文