代码功能概述
这段代码实现了一个图形化界面(GUI)应用程序,用于批量合并指定文件夹及其子文件夹内的PDF文件,并将合并后的PDF文件移动到指定的输出文件夹。它具备以下主要功能:
- 遍历文件夹:使用
os.walk函数递归遍历指定的根目录,包括所有子文件夹。 - PDF文件合并:在每个文件夹中查找所有PDF文件,使用
pdftk工具将这些PDF文件合并成一个临时PDF文件,然后将临时文件移动到指定的输出文件夹,并以该文件夹名命名最终的合并文件。 - 图形界面:使用
tkinter库创建一个用户友好的图形界面,用户可以通过界面选择要合并PDF文件的文件夹路径和输出文件夹路径,还能启动、停止合并任务,以及清空输入框和日志。 - 多线程处理:合并任务在一个新线程中执行,避免阻塞主线程(图形界面),使界面在合并过程中仍可响应操作。
- 日志记录:将合并过程中的重要信息(如合并成功或失败的提示)记录在图形界面的日志框中,方便用户查看。
用户操作步骤
- 打开应用程序:运行代码后,会弹出一个标题为“批量合并指定文件夹下各文件夹内pdf为一个pdf文件 - 移动到指定文件夹内”的窗口。
- 选择文件夹路径:点击“选择文件夹”按钮,在弹出的文件选择对话框中选择包含要合并PDF文件的文件夹。
- 选择输出文件夹路径:点击“选择输出文件夹”按钮,选择存放合并后PDF文件的输出文件夹。
- 开始合并:点击“开始程序”按钮,程序将开始遍历所选文件夹及其子文件夹,合并其中的PDF文件,并将结果保存到指定的输出文件夹。
- 停止合并:在合并过程中,如果想终止任务,可点击“结束任务”按钮。
- 清空输入框和日志:可点击“清空输入框”按钮清除之前输入的文件夹路径,点击“清空日志”按钮清除日志框中的记录。
对子文件夹有效性及穿透说明
该代码对子文件夹是有效的,并且能够穿透子文件夹。os.walk函数会递归地遍历指定的root_dir及其所有子文件夹,无论子文件夹的层级有多深,只要其中包含PDF文件,都会被合并。
实例验证
假设我们有以下文件夹及文件结构:
parent_folder
│
├── folder1
│ ├── file1.pdf
│ ├── file2.pdf
│
├── folder2
│ ├── sub_folder
│ │ ├── file3.pdf
│ │ ├── file4.pdf
│ ├── file5.pdf
│
└── folder3
├── file6.pdf
- 操作步骤:
- 在应用程序中,选择
parent_folder作为要合并PDF文件的文件夹路径。 - 选择
output_folder作为输出文件夹路径。 - 点击“开始程序”按钮。
- 在应用程序中,选择
- 预期结果:
- 程序会遍历
parent_folder及其子文件夹。 - 在
folder1中,file1.pdf和file2.pdf会被合并成folder1.pdf,并保存到output_folder。 - 在
folder2中,file3.pdf、file4.pdf和file5.pdf会被合并成folder2.pdf,并保存到output_folder。 - 在
folder3中,file6.pdf会被单独作为folder3.pdf保存到output_folder(因为只有一个PDF文件)。 - 日志框中会记录每个合并操作的相关信息,如合并成功或失败的提示。
- 程序会遍历
python版本:3.86
是否带UI界面:UI版本
电脑系统版本:win10 64位 专业版系统(这是测试环境,其他环境也可以32位操作系统可能需要调整代码,让AI去转换即可)
脚本使用到的库:使用pycharm编辑器,如果没有安装相关库,会自动标红提示,鼠标放到标红的地方会弹出安装库按钮
重要提示:这是源代码,需要安装python使用,也可以自行修改部分代码实现想要的功能
查看源代码




还没有评论,来说两句吧...