Шалом,
Мой сценарий делает вид, что выполняет следующие действия:
- получает исходные (= src) и целевые (= dst) папки в качестве входных данных.
- скопируйте весь каталог и подкаталоги src в dst.
Я уже решил проблему с перезаписью, то есть файл / каталог, который существует как в src, так и в dst.
Теперь мойЕдинственная проблема заключается в том, что папка src копируется без самой себя.
, например:
src = "D: / Apple / 21042019 /..."
dst = "C: / Apple /
Когда я выполняю свой сценарий, я получаю в месте назначения следующее:
" C: / Apple / ... "
Хотя мое желаемое состояние должно иметь:
"C: / Apple / 21042019 /..."
см. Прилагаемый кодниже
Есть предложения?
def copytree(self, src, dst, symlinks=False, ignore=None):
root_src_dir = src
root_dst_dir = dst
for src_dir, dirs, files in os.walk(root_src_dir):
dst_dir = src_dir.replace(root_src_dir, root_dst_dir, 1)
if not os.path.exists(dst_dir):
os.makedirs(dst_dir)
for file_ in files:
src_file = os.path.join(src_dir, file_)
dst_file = os.path.join(dst_dir, file_)
if os.path.exists(dst_file):
# in case of the src and dst are the same file
if os.path.samefile(src_file, dst_file):
continue
os.remove(dst_file)
shutil.move(src_file, dst_dir)