Eu precisava copiar uma estrutura de pasta inteira sem os arquivos para um novo diretório de destino. Abaixo está o código:
# Recreate all path directories & subdirectories
# ignoring files
def directory_mirror(originalPath, targetPath):
for root, subFolders, files in os.walk(originalPath):
newDir = os.path.join(targetPath, root[1+len(originalPath):])
# Make sure the path doesn't already exist
# or the function makedirs will throw an
# exception
if not os.path.exists(newDir):
os.makedirs(newDir)
Se você deseja copiar uma árvore inteira para um novo diretório, você pode usar:
distutils.dir_util.copy_tree(src, dst[, preserve_mode=1, preserve_times=1, preserve_symlinks=0, update=0, verbose=0, dry_run=0])
http://docs.python.org/2/distutils/apiref.html#module-distutils.dir_util
ou
shutil.copytree(src, dst, symlinks=False, ignore=None)
http://docs.python.org/2/library/shutil.html
shutil.copytree () tem uma implementação de filtro que é acionada com seu argumento: ignore
Leituras adicionais:
Diversas interfaces de sistema operacional: http://docs.python.org/2/library/os.html
Funcionalidade do Core Distutils: http://docs.python.org/2/distutils/apiref.html#module-distutils.core
Operações de arquivo de alto nível:
http://docs.python.org/2/library/shutil.html