一个文件夹里面是同一系列文件,但是有两种命名方法,现在想把文件标题格式统一。
在ChatGPT中输入提示词:
你是一个Python编程专家,要完成一个批量重命名的任务,具体步骤如下:
打开本地电脑文件夹:E:\Peppa Pig小猪佩奇\小猪佩奇第8季
找出文件名中包括“Kids TV and Stories”的文件,比如:Kids TV and Stories _ Season 8 _ Compilation 14 _ Peppa Pig Full Episodes.mp4
将这些文件重命名,重命名的格式如下:
Peppa Pig Full Episodes _ Season 8 _ Compilation 14 _ Kids Video.mp4
注意:每一步都要输出相关信息
ChatGPT给出的Python源代码。
运行程序,没有重命名成功:
让ChatGPT进行修正:
重命名后的文件名应该是:Peppa Pig Full Episodes _ Season 8 _ Compilation 14 _ Kids Video.mp4;
但是程序运行后的结果是:Kids Video _ Season 8 _ Compilation 14 _ Peppa Pig Full Episodes.mp4
找出原因并进行修正
ChatGPT的回复:
对不起,我之前的代码有点问题。你的需求是将文件名中的 "Kids TV and Stories" 替换为 "Peppa Pig Full Episodes", 并将原本的 "Peppa Pig Full Episodes" 改为 "Kids Video"。在我的原始代码中,我没有考虑到替换的顺序,所以结果不正确。
修正的代码如下所示:
import os
# Step 1: 打开文件夹
print("正在打开文件夹...")
folder_path = 'E:/Peppa Pig小猪佩奇/小猪佩奇第8季'
os.chdir(folder_path)
print("文件夹已打开.")
# Step 2: 找出文件名中包括“Kids TV and Stories”的文件
print("正在查找文件...")
files = os.listdir()
target_files = [file for file in files if "Kids TV and Stories" in file]
print(f"找到 {len(target_files)} 个文件.")
# Step 3: 重命名文件
print("正在重命名文件...")
for file in target_files:
# 首先将 "Kids TV and Stories" 替换为一个临时字符串
temp_name = file.replace('Kids TV and Stories', 'Temp')
# 然后将 "Peppa Pig Full Episodes" 替换为 "Kids Video"
new_name = temp_name.replace('Peppa Pig Full Episodes', 'Kids Video')
# 最后将临时字符串替换为 "Peppa Pig Full Episodes"
final_name = new_name.replace('Temp', 'Peppa Pig Full Episodes')
os.rename(file, final_name)
print(f"{file} -> {final_name}")
print("所有文件已重命名完成.")
重新运行程序,成功!