打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
零代码编程:用ChatGPT进行批量重命名时需要注意特殊字符
userphoto

2023.11.01 广东

关注

用ChatGPT进行批量重命名时,一部分成功了,但有一部分文件标题没有变化。

问下ChatGPT怎么回事:

回复:在Windows中,文件名不能包含以下字符:\ / : * ? " < > |,使用Python的 str.replace 方法来替换Excel文件的第1列中不能用于文件名的字符

于是,把这个注意事项加入到提示词中:

你是一个Python编程专家,要完成批量重命名的任务,具体步骤如下:

读取F盘的表格文件:pname.xlsx,获取到第2列的数据;

逐一读取文件夹“D:\lexfridman-podcast”里面的所有mp3文件的名称,然后和表格pname.xlsx第2列所有内容进行比对,如果和某个单元格内容一致,则读取这个单元格同一行的第1列单元格的内容,以此对文件标题进行重命名;

注意:每一步都要输出相关信息;

在Windows中,文件名不能包含以下字符:\ / : * ? " < > |,使用Python的 str.replace 方法来替换Excel文件的第1列中不能用于文件名的字符

这次给出的源代码运行成功:

import os

import pandas as pd

# 读取Excel文件

df = pd.read_excel('F:\\pname.xlsx', usecols=[0, 1], header=None)

# 获取文件夹中的所有文件

folder_path = 'D:\\lexfridman-podcast'

files = os.listdir(folder_path)

# 定义一个函数,它会将所有不能用于文件名的字符替换为下划线 "_"

def sanitize_filename(filename):

invalid_chars = '\\/:*?"<>|'

for char in invalid_chars:

filename = filename.replace(char, '_')

return filename

# 遍历文件夹中的每一个文件

for file in files:

# 检查文件是否是mp3文件

if file.endswith('.mp3'):

# 去掉".mp3"后缀,方便比较

file_without_extension = file[:-4]

# 查找这个文件名在Excel表格的第二列(Python中索引从0开始)中的位置

matching_rows = df[df[1] == file_without_extension]

# 如果找到了匹配的行

if not matching_rows.empty:

# 获取新的名字,并清理无效的字符

new_name = sanitize_filename(matching_rows.iloc[0, 0]) + ".mp3"

# 输出信息

print(f"Renaming {file} to {new_name}")

# 重命名文件

os.rename(os.path.join(folder_path, file), os.path.join(folder_path, new_name))

# 完成后输出信息

print("All files have been renamed.")

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
文件批量更名方法
文件(夹)批量重命名
可以使用脚本重命名文件夹中的所有文件吗?
Python批量给文件改名的两种方法
详解C语言中的rename()函数和remove()函数的使用方法
批处理[bat]完全教程2
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服