是否可以使用shutil.copy()
或shutil.move()
而不会覆盖重复的文件?替代方法是创建一个唯一的文件名,我尝试过但未成功。
更多上下文:我有1000多个带有子目录的目录文件。每个子目录具有相同的命名格式,即0001、0002,.. 0100,.. etc。下面是我必须传输所有文件的最接近的工作代码。
import os
import shutil
import fnmatch
def gen_find(filepat,top):
for path, dirlist, filelist in os.walk(top):
for name in fnmatch.filter(filelist,filepat):
yield os.path.join(path,name)
try:
if __name__ == '__main__':
src = '/Volumes/Tosh/Files/app_yb2_20190221/2019-08/US/untitled folder/0053/'
dst = '/Volumes/Tosh/Files/app_yb2_20190221/2019-08/US/images/'
filesToMove = gen_find("*.jpg",src)
for name in filesToMove:
shutil.copy(name, dst) # or shutil.move
except Exception as e:
print(e)