Python实现文件按顺序重命名并分类转移至指定文件夹

方予
方予
发布时间:2026-10-14| 1人浏览过
原创

本文介绍如何使用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文件处理技巧,可参考本站其他文章或继续浏览后续内容,感谢支持。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。