Копировать файлы из одной папки в другую (и не перезаписывать) - PullRequest
1 голос
/ 15 января 2020

Я использую следующий код для копирования файлов из одной папки в другую, но файлы перезаписываются, есть ли возможность копировать файлы в новую подпапку для каждой итерации?

for patients in parent:
    for root, dirnames, filenames in os.walk(patients):
            for filename in fnmatch.filter(filenames, '*.dcm'):
                matches.append(os.path.join(root, filename))

                s=os.path.join(root, filename)
                d =os.path.join(dst, filename)
                shutil.copy(s, d)

Ответы [ 2 ]

2 голосов
/ 15 января 2020

Вы можете просто добавить чек перед копией:

if not os.path.exists(d):
   shutil.copy(s, d)
0 голосов
/ 15 января 2020

Вы можете просто использовать shutil, который дает огромное количество вариантов для файловых операций. Проверьте документацию здесь

Код :

import os
import shutil
spath='C:/Path/to/Source'
sfiles = os.listdir(spath)
dpath = 'C:/Path/to/Destination'
for file in sfiles:
if file.endswith('.dcm'):
   shutil.copy(os.path.join(spath,file), os.path.join(dpath,file))

Если у вас есть вопросы и если они не работают, пожалуйста, прокомментируйте ниже. Я проверил его, и он работает в моей системе.

...