合并PDF文件任务操作步骤
任务要求
需要将两个文件夹中的PDF文件按照患者姓名进行匹配合并:
- 主文件夹:
H:\病案首页
- 这里的PDF以患者姓名直接命名 - 次文件夹:
H:\神外二科四肢血管彩超
- 这里的PDF文件名格式为"序号+姓名"
合并规则是将"病案首页"文件夹中的PDF追加到"神外二科四肢血管彩超"文件夹中对应患者PDF的后面,形成一个新的合并PDF。
解决方案
下面Python脚本来自动完成这个任务。
import os
import PyPDF2
# 设置文件夹路径
main_folder = r"H:\病案首页"
secondary_folder = r"H:\神外二科四肢血管彩超"
output_folder = r"H:\神外二科四肢血管彩超\合并结果" # 新建一个文件夹存放合并后的PDF
# 创建输出文件夹
os.makedirs(output_folder, exist_ok=True)
# 获取主文件夹中的PDF文件(直接以姓名命名)
main_pdfs = {}
for filename in os.listdir(main_folder):
if filename.lower().endswith('.pdf'):
patient_name = os.path.splitext(filename)[0] # 去掉.pdf获取患者名
main_pdfs[patient_name] = os.path.join(main_folder, filename)
# 处理次文件夹中的PDF文件(序号+姓名)
for filename in os.listdir(secondary_folder):
if filename.lower().endswith('.pdf'):
# 从文件名中提取患者姓名部分(假设格式为"数字姓名.pdf")
# 去掉.pdf后,去掉前面的数字部分
base_name = os.path.splitext(filename)[0]
# 提取姓名部分(假设数字后面直接跟着姓名,没有分隔符)
# 找到第一个非数字字符的位置
name_part = base_name.lstrip('0123456789')
if name_part in main_pdfs:
# 找到匹配的患者,开始合并PDF
secondary_pdf_path = os.path.join(secondary_folder, filename)
main_pdf_path = main_pdfs[name_part]
# 创建PDF合并器
merger = PyPDF2.PdfMerger()
# 先添加次文件夹的PDF(序号+姓名)
merger.append(secondary_pdf_path)
# 然后添加主文件夹的PDF(病案首页)
merger.append(main_pdf_path)
# 保存合并后的PDF
output_filename = f"合并_{filename}"
output_path = os.path.join(output_folder, output_filename)
with open(output_path, 'wb') as f:
merger.write(f)
print(f"已合并: {filename} 和 {name_part}.pdf -> {output_filename}")
else:
print(f"未找到匹配的主PDF文件: {name_part}")
print("合并完成!所有结果保存在:", output_folder)
PDF合并工具依赖项安装指南
要运行您提供的PDF合并脚本,需要安装以下Python依赖项:
必需依赖项
- PyPDF2 - 用于PDF文件的读取、写入和合并操作
安装方法
打开命令提示符(CMD)或终端,执行以下安装命令:
pip install PyPDF2
如果您使用的是Python 3,可能需要使用:
pip3 install PyPDF2
依赖项详细说明
1. PyPDF2
功能:
- 读取PDF文件内容
- 合并多个PDF文件
- 创建新的PDF文件
- 操作PDF页面(添加、删除、旋转等)
版本要求:
- 推荐使用PyPDF2 3.0.0或更高版本
安装验证:
安装完成后,可以通过以下命令验证是否安装成功:
python -c "import PyPDF2; print(PyPDF2.__version__)"
可选依赖项(增强功能)
虽然您的当前脚本不需要,但以下依赖项可能对扩展功能有用:
-
pdfminer.six - 用于PDF文本提取
pip install pdfminer.six
-
reportlab - 用于创建PDF文件(如需要动态生成内容)
pip install reportlab
常见问题解决
-
权限问题:
如果安装时遇到权限错误,可以尝试:pip install --user PyPDF2
-
多Python版本问题:
如果系统有多个Python版本,确保为正确的Python版本安装:python -m pip install PyPDF2
-
网络问题:
如果下载速度慢,可以使用国内镜像源:pip install PyPDF2 -i https://pypi.tuna.tsinghua.edu.cn/simple
安装完成后,您就可以直接运行您提供的PDF合并脚本了。脚本会自动匹配两个文件夹中相同患者姓名的PDF,并将"病案首页"的PDF追加到"神外二科四肢血管彩超"文件夹中对应患者PDF的后面。