Можно ли изменить код shutil, чтобы не перезаписывать дубликаты файлов? - PullRequest
0 голосов
/ 06 июля 2019

Можно ли использовать shutil.copy() или shutil.move() без перезаписи дубликатов файлов? Альтернативой может быть создание уникального имени файла, которое я попытался, но безуспешно.

Больше контекста: у меня есть тысячи файлов каталогов с подкаталогами. Каждый подкаталог имеет одинаковый формат именования, т.е. 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)
...