python 批量去除文件名
背景:
下载了一批电视剧,每个电视剧都有一个后缀名。
想把它去掉。
解决:
咨询AI,解决了。
代码:
import os
def rename_files_recursive(directory_path, target_string="www.123.com", preview_mode=True):
"""
递归重命名所有子目录中的文件
"""
if not os.path.exists(directory_path):
print(f"目录 {directory_path} 不存在")
return
all_files_to_rename = []
# 递归遍历所有文件
for root, dirs, files in os.walk(directory_path):
for filename in files:
if target_string in filename:
old_path = os.path.join(root, filename)
new_filename = filename.replace(target_string, "")
new_path = os.path.join(root, new_filename)
all_files_to_rename.append({
'old_name': filename,
'new_name': new_filename,
'old_path': old_path,
'new_path': new_path,
'directory': root
})
if not all_files_to_rename:
print(f"没有找到包含 '{target_string}' 的文件")
return
# 按目录分组显示
print(f"在所有子目录中找到 {len(all_files_to_rename)} 个包含 '{target_string}' 的文件:")
print("=" * 80)
current_dir = ""
for file_info in all_files_to_rename:
if file_info['directory'] != current_dir:
current_dir = file_info['directory']
print(f"\n📁 目录: {current_dir}")
print("-" * 60)
print(f" 原文件名: {file_info['old_name']}")
print(f" 新文件名: {file_info['new_name']}")
print()
if preview_mode:
print("⚠️ 当前为预览模式,文件未被实际重命名")
return all_files_to_rename
# 执行重命名
renamed_count = 0
for file_info in all_files_to_rename:
try:
if os.path.exists(file_info['new_path']):
print(f"❌ 跳过: {file_info['old_name']} -> 目标文件已存在")
continue
os.rename(file_info['old_path'], file_info['new_path'])
print(f"✅ 成功: {file_info['old_name']} -> {file_info['new_name']}")
renamed_count += 1
except Exception as e:
print(f"❌ 失败: {file_info['old_name']} -> 错误: {e}")
print(f"\n重命名完成!成功处理 {renamed_count} 个文件")
return renamed_count
# 使用示例
directory = r"D:\movie\鱿鱼游戏\Squid.Game.S02"
rename_files_recursive(directory, "[电影港www.dygangs.me]", preview_mode=False)
注意:
这里
preview_mode = True
为True就是预览模式,
为False就是正式修改。
字符串里的内容就是要删掉的内容。


ok大功告成!

致谢:
Claude Sonnet 4 Think

浙公网安备 33010602011771号