gpt4 book ai didi

python - 需要帮助重命名引用 CSV 的文件,同时处理重复名称等

转载 作者:太空宇宙 更新时间:2023-11-03 21:17:00 25 4
gpt4 key购买 nike

我正在尝试创建一个程序,根据客户提供的 CSV 重命名大量文件。 CSV 包含:Row [0] - 要替换​​的当前名称行 [1] - 替换它的名称

我过去遇到过 CSV 中文件名重复的问题,在这种情况下,我想自动添加“_n”(n = 重复数字) 在适当的时候添加到文件名。

文件和 CSV 均位于同一文件夹中。

import os
import sys
import csv

print('Hey')

def rename_files(csv_filename):
with open('rename_csv.csv', 'r') as csvfile:
csvreader = csv.reader(csvfile, delimiter=',', quotechar='"')

files_mapping = {}
new_filenames = set()

for row in csvreader:

name = row[0] + '.wav'
new = row[1] + '.wav'

if new in new_filenames:
raise Exception(
'Found duplicate filename {} for file {}'.format(new, name)
)

new_filenames.add(new)
files_mapping['name'] = new

for name, new in files_mapping.items():
if os.path.exists(name):
print('\n' + 'renaming ' + name)
os.rename(name, new)

else:
print('\n' + name + " does not exist")


if __name__ == "__main__":
rename_files(sys.argv[1])

预期结果是标记为(在本例中...)1.wav、2.wav、3.wav 等的文件将被重命名为 a.wav、b.wav、c.wav 等。根据 CSV。相反,它似乎运行但不更改任何文件名。

终端输出: 嘿

名称不存在

最佳答案

您错误地构建了文件映射字典。我认为在这条线上

files_mapping['name'] = new

您的意思是引用 name 变量 - 因此将其替换为

files_mapping[name] = new

关于python - 需要帮助重命名引用 CSV 的文件,同时处理重复名称等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54616655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com