日常工作中,常有一些目录在移动、复制过程中产生不少带(1)(2)(3)……或“ - 副本”的后缀,造成目录混乱,不利于资料整理,但由于时间的关系,又暂时没办去判断它们是否有用,所以又不能删除。
以下Python代码,可将目录中的这类文件暂时移动到一个叫“重复名”的子目录中,以使原目录文件更加清晰、简单。
其中,
原目录的路径,大家自行在代码中的:
#切换工作目录
工作目录='G:/Xct/Python/测试目录/'
中修改为自己要清理的目录;
要处理的文件名中带有的“指定字符”(如:(1)(2)(3)或 - 副本),请大家在代码中的:
#定义“指定字符”
指定字符='(1)'
#指定字符=' - 副本'
中修改为自己目录中的样子。
如下,是全部代码,为了方便像我这样的初学者,代码中,能用中文的,我都用中文了:
'''将文件名中带有“指定字符”的文件全部移动动到“重复名”文件夹中'''
import os
import shutil
#定义“指定字符”
指定字符='(1)'
#指定字符=' - 副本'
#切换工作目录
工作目录='G:/Xct/Python/测试目录/'
os.chdir(工作目录)
#在当前目录下创建了一个名为“重复名”的文件夹
重复名文件夹 = "./重复名/" # 重复名文件夹路径
if not os.path.exists(重复名文件夹):
os.mkdir(重复名文件夹) # 创建重复名文件夹
当前路径 = "./" # 原始文件夹路径,此处为当前路径
重复名文件夹路径 = "./重复名/" # 重复名文件夹路径
for 文件名 in os.listdir(当前路径):
主文件名, 扩展名 = os.path.splitext(文件名) # 将文件名和文件扩展名分离,分别保存为name和ext
if 指定字符 in 主文件名: # 判断主文件名中是否有“(1)”
原文件的完整路径 = os.path.join(当前路径, 文件名) # 原文件的完整路径
新文件名 = 主文件名.replace(指定字符, "") + 扩展名 # 新的文件名,剔除“(1)”
新名文件的完整路径 = os.path.join(重复名文件夹路径, 新文件名) # 重复名文件的完整路径
shutil.move(原文件的完整路径, 新名文件的完整路径) # 移动文件到重复名文件夹中