避免在Python中的文件夹中重复文件名

Ami*_*mir 1 python filenames

我想下载一些文件并将它们保存在一个文件夹中,文件名中可能有一些重复,所以我想避免这种情况发生.我认为它需要一个自动命名系统,但现在我不知道如何制作它.我用过shutilurllib2编写我的函数.

这是我的代码的一部分:

path = 'C:/DL/Others/'+filename+file_ext
with open(path, 'wb') as fp:
    shutil.copyfileobj(req, fp)
Run Code Online (Sandbox Code Playgroud)

如您所知,我们可以检查文件是否存在os.path.exists('path').我想重命名我的文件并保存它们,以避免使用模式重复名称,例如通过在文件名中添加一个数字.如果有4个同名文件,"fname",我想要4个这种模式的文件:fname - fname(1) - fname(2) - fname(3)

g.d*_*d.c 5

这样的事情可能是合理的:

path = 'c:/DL/Others/%s%s' % (filename, file_ext)
uniq = 1
while os.path.exists(path):
  path = 'c:/DL/Others/%s_%d%s' % (filename, uniq, file_ext)
  uniq += 1
Run Code Online (Sandbox Code Playgroud)

如果原始路径不存在,则会得到"否" _1,但如果它确实存在,则会一直计算,直到找到一个空闲路径.