Python实现文件按顺序重命名并分类转移至指定文件夹
本文介绍如何使用Python脚本将包含多个子文件夹的目录中的文件,按顺序重命名并分类转移到新的目标文件夹中。通过复制源文件以保留原始数据,利用os和shutil模块创建新目录,并对文件名进行排序后执行重命名与移动操作,确保文件按1至56的顺序对应到各个子文件夹中。
环境配置与任务需求
运行环境为Ubuntu 20.04系统,主要依赖Python工具。任务要求处理一个包含22个子文件夹的目录结构,每个子文件夹内含有56个文件。核心目标是将每个子文件夹内的文件按照特定顺序提取出来,分别重命名并转移到对应的新建文件夹中,即第一个文件放入编号为1的文件夹,第二个放入编号为2的文件夹,依此类推直至完成所有文件的分类转移。
import os
import shutil
#源文件路径
source_path='......'
#复制的新文件的路径
copy_source_path='.....'
#直接复制过去的话,经常会提示文件存在,所以加个判断语句
#判断路径是否存在源文件,如果有则删除
if os.path.exists(copy_source_path):
shutil.rmtree(copy_source_path)
#复制文件过去
shutil.copytree(source_path,copy_source_path)
源文件备份策略
在执行任何移动或重命名操作之前,建议先复制源文件到一个临时或备份路径。这样做不仅增加了操作的容错空间,方便在出现错误时恢复原始数据,同时也便于后续核对操作结果是否符合预期。当然,如果确信操作无误,也可以跳过此步骤直接进行后续处理,但保留副本是更稳妥的做法。
新文件夹创建逻辑
接下来需要创建用于存放转移后文件的新文件夹结构。根据需求,这些新文件夹的命名规则通常与文件在子文件夹中的顺序相关,例如从1到56编号。通过遍历目标范围并检查目录是否存在,若不存在则使用系统命令创建对应的文件夹,为后续的文件转移做好准备。
def creat(files):
#创建名称为1~56的新文件夹
for i in range(1,57):
#判断路径是否存在同名文件夹,如果没有则创建
if not os.path.exists(files +'/' +str(i)):
os.makedirs(files +'/' +str(i))
#输入路径
creat('......')
文件重命名与转移实现
最后一步是实现文件的重命名与转移。程序需遍历源目录下的每个子文件夹,获取其中的文件列表并进行排序,以确保处理的顺序一致性。随后,根据排序后的顺序,将每个文件重命名(通常包含原文件名、序号等信息)并移动到对应的新文件夹中。利用重命名指令同时完成移动操作,既实现了文件位置的变更,也完成了命名的规范化。
#上面新文件夹所在路径
target_path='.......'
#总文件夹路径
for file in os.listdir(copy_source_path):
j=1
#拼接出文件完整路径
source_path_1=os.path.join(copy_source_path,file)
source_list=os.listdir(source_path_1)
#对获取的文件名排序,否则是乱序修改
source_list_1=sorted(source_list)
#子文件夹路径
for file_1 in source_list_1:
#源文件地址,这里的源文件我用的是复制的文件
oldname_path=os.path.join(source_path_1,file_1)
#新文件夹路径
for file_2 in os.listdir(target_path):
if str(j)==file_2:
target_path_1=os.path.join(target_path,file_2)
#新文件路径以及新名称,这里新名称我是用的子文件名+文件序号+文件原来名称,而上面的判断语句就是判断文件序号与新文件夹名称是否相同
newname_path=os.path.join(target_path_1,file +'-'+str(j)+'-'+file_1)
#renamen指令不仅能重新命名而且不保留源文件以达到转移的目的
os.rename(oldname_path,newname_path)
#要对每个子文件夹中的文件顺序命名,注意j所在的循环,不要放错
j+=1
至此,关于使用Python按顺序重命名文件并分类转移到各个文件夹的实现方案已介绍完毕。该方案通过简单的脚本逻辑解决了批量文件整理的问题。如需了解更多相关Python文件处理技巧,可参考本站其他文章或继续浏览后续内容,感谢支持。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









