Python实现:将文件夹下的所有文件按文件加名称+序号的形式进行重命名,然后复制到同一个文件夹中

使用场景:

  • 文件目录结构为:外层文件夹 - 内层文件夹 - 具体的文件
  • 操作实现:将最内层文件按照【内层文件夹-序号.文件后缀】进行重命名,然后移动到一个汇总文件夹中

具体代码:

import os
import shutil

# 方法(两个参数分别为待操作的目录、目标目录)
# 注意:目标目录必须提前创建好
def rename_and_copy(o_path, t_path):
    # 判断输入的路径是否正确,以及目标文件夹是否存在
    if not os.path.exists(o_path):
        return print("源文件夹不存在!请检查源文件目录是否存在!")
    if not os.path.exists(t_path):
        os.makedirs(t_path)

    # 用os.walk方法取得path路径下的文件夹路径,子文件夹名,所有文件名
    for folders, sub_folders, file_names in os.walk(o_path):
        # 遍历所有子文件夹(目的为获得子文件夹的目录,以及继续在此基础上遍历此文件夹内的文件)
        for sub_folder in sub_folders:
            # 得到当前文件夹的目录(字符串)
            sub_folders_dir = os.path.join(folders, sub_folder)
            # 开始遍历此文件下的每个文件
            i = 0  # 为了给每个文件加序号
            for file_name in os.listdir(sub_folders_dir):
                # 1.制作文件的新名称:文件夹名-序号-文件后缀
                # 翻个参数分别为:文件所属文件夹的名称、序号、文件的后缀
                new_file_name = sub_folders_dir.split("\\")[1] + "-" + str(i) + "." + file_name.split(".")[1]
                i += 1  # 别忘了序号递增
                # 2.重命名文件
                os.rename(os.path.join(sub_folders_dir, file_name), os.path.join(sub_folders_dir, new_file_name))
                # 3.复制到指定文件夹
                shutil.copy(os.path.join(sub_folders_dir, new_file_name), t_path)
    return print("执行完毕!")

效果测试

1.需求:

test文件夹下有三个文件夹:文件夹a、文件夹b、文件夹c
其中,
文件夹a中存放文件a.txt
文件夹b中存放文件b.jpg
文件夹c中存放文件c.png
现需要将test文件夹下的所有文件,按照【文件夹-序号.文件后缀】 的形式重命名,并且统一复制到同一个目标文件夹target中。

2.实现:
  • 新建一个.py文件,直接将上放的python方法,复制进来;
  • 调用上放的方法,执行py程序,即可完成所需操作

# 声明两个变量,分别为原始目录和目标文件目录
or_path = "I:/test"
target_path = "I:/target_path"  

# 调用函数
rename_and_copy(or_path, target_path)

执行后效果:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值