如何解决重命名目录树中的所有重复文件以具有唯一名称
我有一个目录树,其中包含一堆同名文件,我想用唯一的名称重命名。它看起来像这样:
root
folder1
a
b
c
folder2
a
c
d
folder3
a
b
c
我想在文件名的末尾添加一个数字,以便为它们提供唯一的名称。我希望它在接近尾声时看起来像这样。
root
folder1
a1
b1
c1
folder2
a2
c2
d
folder3
a3
b2
c3
我一直在使用 os.walk 并设法创建了一个包含多个文件名的列表。感觉就像我接近了一个解决方案,但我无法掌握它......我想需要编写一个聪明的 for 循环。我觉得 atm 有点卡住了。有没有人对这个问题有建议或解决方案?提前致谢。
解决方法
假设您需要重命名所有子目录中的所有文件,如示例所示。 该代码将查找所有文件并跟踪哪个名称较早出现以及附加的数字应该是什么。
import os
path = '<INSERT PATH>'
file_dict = {}
for root,dirs,files in os.walk(path):
for name in files:
file_name,file_ext = os.path.splitext(name)
new_name = file_name + str(file_dict.get(name,'')) + file_ext
os.rename(os.path.join(root,name),os.path.join(root,new_name))
if name not in file_dict:
file_dict[name] = 0
file_dict[name] += 1
,
使用模块 0
来实现这一点:
Path
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。