文件夹里有多个视频文件,标题中有多个词组要批量删除掉。
在ChatGPT中输入提示词:
你是一个Python编程专家,要完成一个批量重命名文件标题的任务,具体步骤如下:
打开本地电脑文件夹:E:National Geographic Kids
读取文件夹里面的所有mp4文件;
如果文本标题中含有如下词组:
national geographic for kids_
National Geographic Kids-
National Geographic kid look and learn –
National Geographic Kids Readers_
National Geographic Readers_
Read with Chimey_ National Geographic Kids-
Read with Chimey_ Read aloud for Nationa服务器托管网l Geographic Kids-
则将文件标题中的这些词组全部删除掉;
注意:每一步都要输出信息
如果删除词组的文件标题和文件夹中其他标题名重复,则在文件标题后加上一个“1”,以便进行区别;
运行程序,部分成功,但是“Read with Chimey_ National Geographic Kids-”没有被删除
于是,让ChatGPT自己进行检查查找原因:
ChatGPT的回复是:
这可能是因为在你的文件名中,”Read with Chimey_ National Geographic Kids-” 后面可能还有额外的空格或特殊字符。Python 的 str.replace() 方法在替换字符串时是完全匹配的,所以如果文件名中的词组后面有额外的字符,这个词组就不会被识别和删除。
为了解决这个问题,你可以考虑使用 Python 的 re 模块(正则表达式模块)来进行更灵活的匹配和替换。下面是一个修改后的脚本:
import os
import re
# 定义文件夹路径和需要删除的词组
folder_path = ‘E:National Geographic Kids’
phrases_to_remove = [
‘national geographic fo服务器托管网r kids_’,
‘National Geographic kid look and learn -‘,
‘National Geographic Kids Readers_’,
‘National Geographic Readers_’,
‘Read with Chimey_ National Geographic Kids-‘,
‘Read with Chimey_ Read aloud for National Geographic Kids-‘
]
# 读取文件夹里的所有文件
for filename in os.listdir(folder_path):
if filename.endswith(‘.mp4’):
print(f’处理文件:{filename}’)
new_filename = filename
# 检查文件名是否包含指定的词组
for phrase in phrases_to_remove:
# 使用正则表达式删除词组及其后面可能的空格
pattern = re.compile(phrase.strip() + r’s*’)
new_filename = pattern.sub(”, new_filename)
# 如果文件名有变动,重命名文件
if new_filename != filename:
print(f’ 重命名为:{new_filename}’)
os.rename(os.path.join(folder_path, filename), os.path.join(folder_path, new_filename))
else:
print(‘ 文件名未改变’)
else:
print(f’忽略非mp4文件:{filename}’)
print(‘所有文件处理完成’)
再次运行,成功。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 【高手问答第 305 期精华汇总】 —— 如何使用 lambda 表达式提升开发效率?
Java8 的一个大亮点是引入 Lambda 表达式,使用它设计的代码会更加简洁。当开发者在编写 Lambda 表达式时,也会随之被编译成一个函数式接口。 OSCHINA 本期高手问答 (8 月 23 日 – 8 月 29 日) 我们请来了嘉宾阿超老师来和大家…