
最近突然有个小众的需求,批量把大量文件夹中的图片按照为文件夹合并为PDF文件,1个文件夹对应1个PDF文件。
懒癌晚期的崽是不可能一个一个搞的,需要偷懒的方式。
所以又得靠Python了。
安装Python
下载Python
访问 https://www.python.org/downloads/
点击黄色的"Download Python"按钮
下载完成后运行安装程序
安装注意事项
✅ 重要:在安装时勾选 "Add Python to PATH"
点击 "Install Now" 进行安装,安装完成后,关闭窗口


安装必要的库
方法A:使用命令提示符(推荐)
按 Win + R 键,输入 cmd,按回车
在黑色窗口中依次输入以下命令,每输入一行按一次回车:
pip install Pillow
方法B:如果方法A失败,尝试以下命令
python -m pip install Pillow
或或者使用阿里云源
py -m pip install Pillow -i https://mirrors.aliyun.com/pypi/simple/
准备文件、文件夹
在D盘桌面新建一个文件夹,命名为【图片汇总】,将所有要处理的文件夹复制到这个文件夹中。
亦可在“ target_folder = r"D:\图片汇总" # ⚠️ 重要:改成你的实际路径!”处修改对应需处理文件夹的地址。
新建一个文本文件,重命名为【批处理-批量转换文件夹内图片为PDF.py】(注意扩展名要改为.py)
创建Python脚本
用记事本打开 批处理-批量转换文件夹内图片为PDF.py,复制粘贴以下代码:
或者直接点击阅读原文,获取可直接使用的文件【该方式对应路径为"D:\图片汇总"】
import os
import subprocess
import sys
def install_pillow():
"""自动安装Pillow库"""
try:
from PIL import Image
print("Pillow已安装")
return True
except ImportError:
print("正在安装Pillow...")
try:
subprocess.check_call([sys.executable, "-m", "pip", "install", "Pillow", "-i", "https://pypi.tuna.tsinghua.edu.cn/simple"])
print("Pillow安装成功!")
return True
except Exception as e:
print(f"安装失败: {e}")
print("请手动运行: py -m pip install Pillow -i https://pypi.tuna.tsinghua.edu.cn/simple")
return False
# 自动检查并安装依赖
if not install_pillow():
sys.exit(1)
from PIL import Image
def images_to_pdf(folder_path, output_pdf_path):
"""将文件夹中的所有图片转换为一个PDF文件"""
image_extensions = ('.jpg', '.jpeg', '.png', '.bmp', '.gif', '.tiff')
images = []
for file in sorted(os.listdir(folder_path)):
if file.lower().endswith(image_extensions):
img_path = os.path.join(folder_path, file)
try:
img = Image.open(img_path)
if img.mode in ('RGBA', 'LA', 'P'):
img = img.convert('RGB')
images.append(img)
print(f" 已添加: {file}")
except Exception as e:
print(f" 跳过 {file}: {e}")
if images:
first_img = images[0]
rest_imgs = images[1:]
first_img.save(output_pdf_path, save_all=True, append_images=rest_imgs)
print(f" ✓ 已创建: {output_pdf_path} (共{len(images)}张图片)")
return True
else:
print(f" ✗ 未找到图片: {folder_path}")
return False
def batch_convert_images_to_pdf(root_folder):
"""批量处理:每个子文件夹转换为一个PDF"""
root_folder = os.path.abspath(root_folder)
if not os.path.exists(root_folder):
print(f"错误:文件夹不存在 - {root_folder}")
return
subfolders = [f.path for f in os.scandir(root_folder) if f.is_dir()]
if not subfolders:
print("未找到任何子文件夹")
return
print(f"找到 {len(subfolders)} 个文件夹")
print("-" * 50)
success_count = 0
for folder in subfolders:
folder_name = os.path.basename(folder)
print(f"\n处理: {folder_name}")
pdf_path = os.path.join(folder, f"{folder_name}.pdf")
if images_to_pdf(folder, pdf_path):
success_count += 1
print(f"\n完成!成功创建 {success_count}/{len(subfolders)} 个PDF文件")
if __name__ == "__main__":
# 修改这里为你需要处理的文件夹路径
target_folder = r"D:\图片汇总" # ⚠️ 重要:改成你的实际路径!
batch_convert_images_to_pdf(target_folder)
END
向中注协大佬低头
获取更多精彩资讯
扫码关注我们



夜雨聆风