rutas recorrer obtener nombre navegar manejo lista explorador entre directorios directorio con carpetas archivos archivo actual abrir python shutil copytree

recorrer - Copie los contenidos del directorio en un directorio con python



recorrer directorios en python (4)

Tengo un directorio / a / b / c que tiene archivos y subdirectorios. Necesito copiar el / a / b / c / * en el directorio / x / y / z. ¿Qué métodos de python puedo usar?

Intenté shutil.copytree("a/b/c", "/x/y/z") , pero python intenta crear / x / y / z y genera un error "Directory exists" .



Las libs de python están obsoletas con esta función. He hecho uno que funciona correctamente:

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(''..'')


También puede usar glob2 para recopilar recursivamente todas las rutas (usando ** comodines de subcarpetas) y luego usar shutil.copyfile, guardando las rutas

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


from subprocess import call def cp_dir(source, target): call([''cp'', ''-a'', source, target]) # Linux cp_dir(''/a/b/c/'', ''/x/y/z/'')

Esto funciona para mi. Básicamente, ejecuta el comando de shell cp .