是否可以更改常规代码以不覆盖重复的文件?

时间:2019-07-05 23:28:16

标签: macos filesystems shutil

是否可以使用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)

0 个答案:

没有答案