PDF文件合并操作教程:按患者姓名匹配合并两个文件夹中的PDF

合并PDF文件任务操作步骤

任务要求

需要将两个文件夹中的PDF文件按照患者姓名进行匹配合并:

  1. 主文件夹H:\病案首页 - 这里的PDF以患者姓名直接命名
  2. 次文件夹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依赖项:

必需依赖项

  1. 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__)"

可选依赖项(增强功能)

虽然您的当前脚本不需要,但以下依赖项可能对扩展功能有用:

  1. pdfminer.six - 用于PDF文本提取

    pip install pdfminer.six
    
  2. reportlab - 用于创建PDF文件(如需要动态生成内容)

    pip install reportlab
    

常见问题解决

  1. 权限问题
    如果安装时遇到权限错误,可以尝试:

    pip install --user PyPDF2
    
  2. 多Python版本问题
    如果系统有多个Python版本,确保为正确的Python版本安装:

    python -m pip install PyPDF2
    
  3. 网络问题
    如果下载速度慢,可以使用国内镜像源:

    pip install PyPDF2 -i https://pypi.tuna.tsinghua.edu.cn/simple
    

安装完成后,您就可以直接运行您提供的PDF合并脚本了。脚本会自动匹配两个文件夹中相同患者姓名的PDF,并将"病案首页"的PDF追加到"神外二科四肢血管彩超"文件夹中对应患者PDF的后面。