零代码编程:用ChatGPT根据excel表格数据来批量修改文件标题名

文件夹里面有很多个mp文件,没有顺序,很乱:

零代码编程:用ChatGPT根据excel表格数据来批量修改文件标题名_第1张图片

这些文件其实都是有顺序的,Excel表格中前面的数字就是序号:

零代码编程:用ChatGPT根据excel表格数据来批量修改文件标题名_第2张图片

现在,希望根据Excel表格中的标题名来对文件夹里的mp4文件进行批量重命名,在ChatGPT中输入提示词:

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

读取文件夹“D:\象棋\how to play chess”里面的表格文件:chess.xlsx,获取到第2列的数据;

逐一读取文件夹“D:\象棋\how to play chess”里面的所有mp4文件的名称,然后和表格chess.xlsx第2列所有内容进行比对,如果和某个单元格内容一致,则将这个mp4文件名的开头加上这个单元格同一行的第1列单元格的内容,对文件标题进行重命名;

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

将整数(int)和字符串(str)使用 '+' 运算符合并时,不能直接将这两种类型的数据进行加法运算,需要先将整数类型转换成字符串类型;

文件名和 Excel 内容的匹配不要区分大小写;

文件名匹配时,只比较英文字符,忽略掉“?、|、-、_、! _ 、!、_ _、: ”等这些符号;

ChatGPT给出的源代码如下:

import os

import openpyxl

import re

# 读取Excel表格的数据

def read_excel(file_path):

workbook = openpyxl.load_workbook(file_path)

sheet = workbook.active

data = {}

for row in sheet.iter_rows(min_row=2, values_only=True): # 从第2行开始读取数据

key = re.sub(r'[\W_]+', '', str(row[1]).lower()) # 将第2列的数据作为键,转换为小写,只保留英文字符

data[key] = str(row[0]) # 将第1列的数据作为值,转换为字符串

return data

# 重命名文件

def rename_files(folder_path, data):

for file_name in os.listdir(folder_path):

if file_name.endswith('.mp4'):

name_without_extension = re.sub(r'[\W_]+', '', os.path.splitext(file_name)[0].lower())

if name_without_extension in data:

new_name = data[name_without_extension] + ' - ' + file_name

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

print(f"重命名:'{file_name}' 为 '{new_name}'")

else:

print(f"未找到匹配项:'{file_name}'")

def main():

folder_path = "D:/象棋/how to play chess"

excel_file = os.path.join(folder_path, 'chess.xlsx')

data = read_excel(excel_file)

rename_files(folder_path, data)

if __name__ == '__main__':

main()

运行程序,成功,文件自动按照顺序排列好了:

零代码编程:用ChatGPT根据excel表格数据来批量修改文件标题名_第3张图片

你可能感兴趣的:(excel)