python-文件夹名批量替换特定字符

quange 2024-1-20 508 1/20

源码

import os

def replace_letter_in_folder_names(root_dir, old_letter, new_letter):
    for dirpath, dirnames, filenames in os.walk(root_dir, topdown=True):
        if dirpath == root_dir:
            for dirname in dirnames:
                new_dirname = dirname.replace(old_letter, new_letter)
                try:
                    os.rename(os.path.join(dirpath, dirname), os.path.join(dirpath, new_dirname))
                    print(f"Renamed folder {dirname} to {new_dirname}")
                except OSError as e:
                    print(f"Error renaming folder {dirname} to {new_dirname}: {e.strerror}")

# root_dir = r'D:\TMP\PPT预览版'  # Replace with your directory path
# old_letter = 'H023-'
# new_letter = ''
print("说明:该程序会遍历指定的目录(不包含子目录),查找所有包含旧字符串的文件夹名,并将这些文件夹名中的旧字符串替换为新字符串。\n")
print('注意:这个脚本会直接修改文件夹名,所以在运行这个脚本之前,你应该备份你的文件,以防止意外发生。\n')

root_dir = input('请输入文件夹所在目录(全路径):')
old_letter = input('请输入旧的字符串:')
new_letter = input('请输入新的字符串:')
replace_letter_in_folder_names(root_dir, old_letter, new_letter)
input('已完成,按任意键退出!')

gpt分析

这个代码的作用是批量替换指定目录下文件夹名称中的特定字符串。现在来逐步分析代码:

  1. 1.导入os模块:
   import os

这一行导入os模块,该模块提供了与操作系统交互的功能,包括文件和目录操作。

  1. 2.函数定义:
   def replace_letter_in_folder_names(root_dir, old_letter, new_letter):

代码定义了一个名为replace_letter_in_folder_names的函数,接受三个参数:root_dir(开始搜索的根目录),old_letter(要替换的字符串),和 new_letter(替换的新字符串)。

  1. 3.使用 os.walk:
   for dirpath, dirnames, filenames in os.walk(root_dir, topdown=True):

os.walk 函数生成目录树中的文件名。它返回一个元组,包含目录路径 (dirpath),子目录列表 (dirnames),和文件名列表 (filenames)。

  1. 4.检查根目录:
   if dirpath == root_dir:

此条件检查当前正在处理的目录是否是指定的根目录 (root_dir)。

  1. 5.遍历目录:
   for dirname in dirnames:

此循环遍历当前目录中的子目录列表 (dirnames)。

  1. 6.替换目录名称中的字母:
   new_dirname = dirname.replace(old_letter, new_letter)

它通过将当前目录名称中的 old_letter 替换为 new_letter 来创建一个新的目录名称 (new_dirname)。

  1. 7.重命名目录:
   os.rename(os.path.join(dirpath, dirname), os.path.join(dirpath, new_dirname))

使用 os.rename 通过提供当前目录的完整路径和新目录名称来重命名目录。

  1. 8.处理异常:
   except OSError as e:
       print(f"Error renaming folder {dirname} to {new_dirname}: {e.strerror}")

如果在重命名过程中发生错误,它捕获 OSError 异常并打印错误消息。

  1. 9.用户输入和脚本执行:
    脚本提供一些说明性消息,接受用户输入的根目录、旧字符串和新字符串,并使用提供的输入调用 replace_letter_in_folder_names 函数。
  2. 10.最终消息和输入:
   input('已完成,按任意键退出!')

它等待用户输入,显示完成消息,然后在按下任意键时退出。

该脚本旨在通过替换文件夹名称中的特定子字符串来批量更改指定根目录中的文件夹名称。在运行脚本之前,建议注意潜在的风险,并在必要时备份文件。

可执行文件下载

相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!
- THE END -
最后修改:2024年1月20日
0

版权声明:
一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的所有下载文件均为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,请编辑邮件并加以说明发送到站长邮箱。站长会进行审查之后,情况属实的会在三个工作日内为您删除。

共有 0 条评论