如何将每个PDF文件移动到根据其文件名生成的对应文件夹中?
实现方案
你可以使用Python内置的shutil模块完成文件移动操作,修正并补充后的完整代码如下:
import os import shutil # 获取当前目录下的所有文件 file_list = os.listdir() pdf_files = [] for file in file_list: if file.endswith('.pdf'): pdf_files.append(file) # 遍历所有PDF文件,创建对应文件夹并移动文件 for pdf in pdf_files: # 提取文件夹名:取文件名中#之后、.pdf之前的字段 folder_name = pdf.split('#')[1].split('.')[0] # 创建文件夹,已存在则跳过 try: os.mkdir(folder_name) except FileExistsError: pass # 移动PDF到对应文件夹 shutil.move(pdf, os.path.join(folder_name, pdf))
注意事项
- 上述代码默认你的PDF文件名符合
任意内容#文件夹名.pdf的命名规则,若命名规则不一致需要调整folder_name的提取逻辑 - 原代码中直接将
os.mkdir的返回值赋值给变量是错误的:os.mkdir执行成功无返回值,会导致变量变为None,上述代码已经修正了该问题 - 如果需要避免目标路径存在同名文件被覆盖的情况,可以在移动前调用
os.path.exists(os.path.join(folder_name, pdf))判断文件是否存在,自行调整处理逻辑 - 代码默认处理脚本运行的当前目录下的PDF,如需处理其他目录的文件,需要自行调整路径拼接逻辑
操作效果参考:
内容的提问来源于stack exchange,提问作者alb
相关产品推荐
相关产品推荐

