将文件名中带有“指定字符”的文件(重名文件)全部移动动到“重复名”文件夹中

日常工作中,常有一些目录在移动、复制过程中产生不少带(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(原文件的完整路径, 新名文件的完整路径)  # 移动文件到重复名文件夹中

你可能感兴趣的:(python)