如何批量将目录中下划线分隔的文件名单词首字母改为大写?
批量修改文件名解决方案
你需要将下划线分隔的文件名中每个单词的首字母大写,同时保留扩展名不变。以下是完整的实现代码,已经考虑了文件/目录判断、扩展名分离以及避免重复修改的情况:
import os # 遍历当前目录下的所有条目 for filename in os.listdir(): # 只处理文件,跳过目录 if not os.path.isfile(filename): continue # 分离文件名和扩展名 name_part, ext_part = os.path.splitext(filename) # 按下划线拆分文件名部分 word_list = name_part.split("_") # 对每个单词进行首字母大写处理 capitalized_words = [word.capitalize() for word in word_list] # 拼接成新的文件名 new_filename = "_".join(capitalized_words) + ext_part # 只有当新文件名和原文件名不同时才执行重命名,避免无效操作 if new_filename != filename: os.rename(filename, new_filename)
代码说明
- 过滤目录:用
os.path.isfile()确保只处理文件,不会误改目录名称。 - 分离扩展名:
os.path.splitext()能正确处理带多个点的扩展名(比如file.tar.gz),避免把扩展名的首字母也大写。 - 首字母大写:
str.capitalize()方法会将单词的首字母转为大写,其余字母转为小写,完全符合你需要的Target_File_Name.jpg格式。 - 避免重复操作:判断新文件名是否和原文件名一致,跳过已经符合要求的文件,提升处理效率。
内容的提问来源于stack exchange,提问作者lrhorer
相关产品推荐
相关产品推荐

