首页 > 编程语言 >python 对文件夹重命名

python 对文件夹重命名

时间:2024-04-30 11:12:41浏览次数:26  
标签:重命名 python counter prefix 文件夹 new path os

 import os

    def rename_folders(root_dir, level=1, parent_prefix=''):
        # 计数器,用于生成唯一的名称
        counter = 1

        # 遍历文件夹
        for dirpath, dirnames, filenames in os.walk(root_dir):
            # 只处理文件夹(不处理文件)
            for dirname in dirnames:
                # 构建原始文件夹路径
                old_path = os.path.join(dirpath, dirname)

                # 生成新的文件夹名称前缀
                if level == 1:
                    # 一级目录直接以0开头递增
                    new_prefix = f'0{counter:02d}'  # 使用三位数,不足部分用0填充
                else:
                    # 二级及以上目录使用父级目录的名称和_作为分隔符,再加上递增的数字
                    new_prefix = f'{parent_prefix}_{counter:02d}'

                    # 检查新名称是否已经存在
                new_name = new_prefix
                new_path = os.path.join(dirpath, new_name)
                while os.path.exists(new_path):
                    # 如果存在,增加计数器
                    counter += 1
                    new_name = f'{new_prefix[:-3]}{counter:02d}' if '_' in new_prefix else f'0{counter:02d}'
                    new_path = os.path.join(dirpath, new_name)

                    # 重命名文件夹
                os.rename(old_path, new_path)
                print(f"Renamed {old_path} to {new_path}")

                # 递归处理子文件夹,并更新前缀和级别
                rename_folders(new_path, level + 1, new_name)
                # 重置计数器,因为每个新的级别都需要从1开始计数
                counter = 1

                # 使用示例

    root_dir = "H:\\00002_zw"  # 替换为您的根目录路径
    root_dir = "H:\\zw_new"  # 替换为您的根目录路径
    rename_folders(root_dir)

 

标签:重命名,python,counter,prefix,文件夹,new,path,os
From: https://www.cnblogs.com/xuchunlin/p/18167622

相关文章

  • python脚本获取当前浏览器客户端的公共ip以及其详细信息
    python脚本获取当前客户端的公共ip以及其详细信息importrequestsfromflaskimportFlask,request,make_response,send_from_directoryfromdatetimeimportdatetimeimportasynciofromhypercorn.asyncioimportservefromhypercorn.configimportConfigimportos......
  • Python重试任务模块tenacity
    1.简介在实际应用中,经常会碰到在web请求时,因为网络的不稳定,会有请求超时的问题,这时候,一般都是自己去实现重试请求的逻辑,直到得到响应或者超时。虽然这样的逻辑并不复杂,但是代码写起来却不那么优雅,不那么pythonic。tenacity是一个重试库,使用python语言编写,它能够让我们在任务的重......
  • Python-重试任务模块tenacity
     1.软硬件环境windows1164bits python3.6tenacity2.简介在实际应用中,经常会碰到在web请求时,因为网络的不稳定,会有请求超时的问题,这时候,一般都是自己去实现重试请求的逻辑,直到得到响应或者超时。虽然这样的逻辑并不复杂,但是代码写起来却不那么优雅,不那么pythonic。tenaci......
  • 社会网络分析及其Python实现
    社会网络分析(SocialNetworkAnalysis,SNA)在人类学、心理学、社会学、数学以及统计学等领域中发展起来,是综合运用图论、数学模型来研究社会行动者之间的关系或通过这些关系流动的各种有形或无形的东西,如信息、资源等,近年来逐渐成为一种热门的社会科学研究方法。社会网络分析旨在......
  • python3解析FreeSWITCH会议室列表信息
    操作系统:CentOS7.6_x64FreeSWITCH版本:1.10.9 Python版本:3.9.12进行FreeSWITCH会议室相关功能开发过程中,会遇到需要解析会议室列表信息并进行特定操作的情况,比如设置特定通道变量、发送dtmf、录音等。今天整理下CentOS7环境下,使用Python3解析FreeSWITCH会议室列表信息然后......
  • HydroOJ 从入门到入土(17)批量转化其他格式题库(Python)
    新题库,新快乐,新痛苦。一、想法有了多种题库之后,常常会遇到大量题库无法转化到自己的OJ上。每次都要重新手写解析器,非常浪费时间,于是抽出了这个工具。本工具可以将抽取好的信息自动组装成符合HydroOJ格式的题目并自动压缩,解决后半部分的转化工作。二、实现1.准备包和相......
  • Python 学习笔记
    1、Python简介设计哲学:强调代码的可读性和简洁的语法(尤其是用空格缩进来定义代码块,而不是使用大括号或关键词)。应用领域:Web开发、数据科学、人工智能、科学计算、自动化脚本等。参考文档:Python简介2.基本语法解释器:Python代码可以通过Python解释器直接运行,也可以作为脚本......
  • 【Python】Q-Learning处理CartPole-v1
    上一篇配置成功gym环境后,就可以利用该环境做强化学习仿真了。这里首先用之前学习过的qlearning来处理CartPole-v1模型。CartPole-v1是一个倒立摆模型,目标是通过左右移动滑块保证倒立杆能够尽可能长时间倒立,最长步骤为500步。模型控制量是左0、右1两个。模型状态量为下面四个:......
  • 深入理解Python多进程:从基础到实战
    title:深入理解Python多进程:从基础到实战date:2024/4/2920:49:41updated:2024/4/2920:49:41categories:后端开发tags:并发编程多进程管理错误处理资源调度性能优化异步编程Python并发库引言在Python编程中,多进程是一种重要的并发编程方式,可以让我们充分......
  • Python 编程
    第1章什么是Python?#Python——编程新手最好的选择第2章为Python做好准备#单行注释打印出单词"HelloWorld"print("HelloWorld")'''多行注释这是一条注释这也是一条注释'''print("HelloPython")第3章变量和操作符的世界3.......