Python脚本实现批量文件重命名与清单生成
Python脚本实现批量文件重命名与清单生成
在处理项目资源,特别是图像文件时,经常会遇到需要对大量文件进行重命名或根据特定格式整理的情况。本文将介绍一个使用Python编写的简单但功能强大的脚本,它可以帮助用户自动完成文件名的替换、调整,并且自动生成包含所有文件路径的列表文本文件。这个工具对于开发者、设计师或是任何需要管理大量数字资产的人来说都非常有用。
脚本概述
该脚本主要执行以下几项任务:
- 遍历指定目录下的所有文件:从给定的根目录开始,递归地访问每个子目录。
- 重命名特定后缀的文件:如果发现文件名为
@2x.png
结尾,则将其改为_2x.png
。 - 统一字符:将文件名中的减号
-
替换为下划线_
。 - 过滤并记录文件:忽略那些已经改名为
_2x.png
的文件,只记录其余文件到一个名为fileList.txt
的新文本文件中。
import os
def get_all_files(folder):
fileNameList = []
for root, dirs, files in os.walk(folder):
for file in files:
original_file_path = os.path.join(root, file)
# 如果文件名以 @2x.png 结尾,修改文件名为 _2x.png
if file.endswith('@2x.png'):
new_file_name = file.replace('@2x', '_2x')
new_file_path = os.path.join(root, new_file_name)
if os.path.exists(original_file_path):
os.rename(original_file_path, new_file_path)
file = new_file_name # 更新文件名为新文件名,继续处理后续逻辑
original_file_path = new_file_path # 更新文件路径
else:
print(f"文件不存在:{original_file_path}")
# 将文件名中的-替换为_
if '-' in file:
new_file_name = file.replace('-', '_')
new_file_path = os.path.join(root, new_file_name)
if os.path.exists(original_file_path):
os.rename(original_file_path, new_file_path)
file = new_file_name # 更新文件名为新文件名,继续处理后续逻辑
original_file_path = new_file_path # 更新文件路径
else:
print(f"文件不存在:{original_file_path}")
# 添加不以 _2x.png 结尾的文件
if not file.endswith('_2x.png'):
fileNameList.append(file)
# 将文件名写入文件
with open('fileList.txt', 'w', encoding='utf-8') as f:
for file in fileNameList:
f.write('<file>Resource/' + file + '</file>\n')
print('文件名写入文件成功!')
if __name__ == '__main__':
folder = input("请输入文件夹路径:")
get_all_files(folder) # 调用函数