我想下载一些文件并将它们保存在一个文件夹中,并且文件名可能有一些重复,所以我想避免这种情况发生。 我认为它需要一个自动命名系统,但现在我不知道该怎么做。 我使用 shutil 和 urllib2 来编写我的函数。
这是我的代码的一部分:
path = 'C:/DL/Others/'+filename+file_ext
with open(path, 'wb') as fp:
shutil.copyfileobj(req, fp)
如您所知,我们可以通过 os.path.exists('path') 检查文件是否存在。 我想重命名我的文件并保存它们以避免使用模式重复名称,例如通过在文件名中添加一个数字。所以如果有 4 个文件具有相同的名称“fname”,我想要此模式中的 4 个文件: fname - fname(1) - fname(2) - fname(3)
请您参考如下方法:
这样的事情可能是合理的:
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
如果原始路径不存在,您将不会得到 _1,但如果它确实存在,它将一直计数,直到找到一个空闲路径。
