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

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

零代码编程:用ChatGPT进行批量重命名时需要注意特殊字符_第1张图片

问下ChatGPT怎么回事:

零代码编程:用ChatGPT进行批量重命名时需要注意特殊字符_第2张图片

回复:在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.")

零代码编程:用ChatGPT进行批量重命名时需要注意特殊字符_第3张图片

你可能感兴趣的:(chatgpt)