【发布时间】:2021-07-05 06:41:15
【问题描述】:
我的文件如下所示:
file_name_unique_123.pdf
file_name_unique_456.pdf
file_name_unique_789.pdf
我根据一个包含多个列的 csv 文件创建了一个字典,其中一个包含文件的唯一 ID,例如“unique_123”等:
list = csv.DictReader(open('file.csv'), delimiter = ';')
for row in list:
print(row)
现在我有了字典:
{'ID': 'unique_123', 'name': 'one', 'time': '1',}
{'ID': 'unique_123', 'name': 'two', 'time': '2',}
{'ID': 'unique_123', 'name': 'three', 'time': '3',}
我设法获取文件的 ID 并通过这样做列出它们:
file_IDs = fnmatch.filter(os.listdir(folder), '*unique*.pdf')
[i.split('.', maxsplit = 1)[0].split('_', maxsplit = 5)[5] for i in file_IDs]
所以我现在有这个输出:
['unique_123',
'unique_456',
'unique_789']
我需要以某种方式将文件名中的 ID 与字典 ID 匹配,并根据属于该记录的列重命名文件。 例子: file_name_unique_123.pdf 应根据字典中的第一条记录重命名为 one_1.pdf。
我该怎么做?提前致谢。
【问题讨论】:
-
文件名是否总是格式为
file_name_unique_xxx.pdf? -
是的,它们总是采用这种格式。
-
然后遍历你的 id 列表并调用 os.replace("file_name_"+id+".pdf", dst]
-
是的,我知道,但我不知道具体如何。我不明白如何从字典中获取正确的数据。请您提供一些代码来帮助我入门吗?
标签: python list dictionary rename