Скопировать содержимое каталога в каталог с помощью python

У меня есть каталог /a/b/c, который имеет файлы и подкаталоги. Мне нужно скопировать каталог /a/b/c/ * в каталог /x/y/z. Какие методы python я могу использовать?

Я пробовал shutil.copytree("a/b/c", "/x/y/z"), но python пытается создать /x/y/z и вызывает error "Directory exists".

Ответ 2

Вы также можете использовать glob2 для рекурсивного сбора всех путей (используя подкаталоги ** подпапок), а затем использовать файл shutil.copy, сохраняя пути

glob2 link: https://code.activestate.com/pypm/glob2/

Ответ 3

Библиотеки python устарели этой функцией. Я сделал один, который работает правильно:

import os
import shutil

def copydirectorykut(src, dst):
    os.chdir(dst)
    list=os.listdir(src)
    nom= src+'.txt'
    fitx= open(nom, 'w')

    for item in list:
        fitx.write("%s\n" % item)

    fitx.close()

    f = open(nom,'r')
    for line in f.readlines():
        if "." in line:
            shutil.copy(src+'/'+line[:-1],dst+'/'+line[:-1])
        else:
            if not os.path.exists(dst+'/'+line[:-1]):
                os.makedirs(dst+'/'+line[:-1])
                copydirectorykut(src+'/'+line[:-1],dst+'/'+line[:-1])
            copydirectorykut(src+'/'+line[:-1],dst+'/'+line[:-1])
    f.close()
    os.remove(nom)
    os.chdir('..')