Python semble avoir des fonctions pour copier des fichiers (par exemple shutil.copy) et des fonctions pour copier des répertoires (par exemple shutil.copytree) mais je n'ai pas trouvé de fonction qui gère les deux. Bien sûr, il est trivial de vérifier si vous voulez copier un fichier ou un répertoire, mais cela semble être une omission étrange.
N'y a-t-il vraiment aucune fonction standard qui fonctionne comme la commande unix "cp", c'est-à-dire qui supporte à la fois les répertoires et les fichiers ? Quelle serait la manière la plus élégante de contourner ce problème en Python ?
edit : Quand je dis "cp" je veux dire "cp -r". Désolé pour ça. Et je veux copier tous les répertoires récursivement (comme le font "cp -r" et shutil.copytree).
3 votes
Oui, c'est le bordel. C'est l'un des endroits où, en essayant de refléter les appels système sous-jacents, Python rend l'interface visible pire. Bien qu'il ne soit pas difficile de passer de copy-file à copy-tree, cela n'aurait pas dû être nécessaire. Vous pourriez peut-être déposer une demande d'amélioration sur le bug tracker de Python pour permettre à
copytree
pour copier un seul fichier ?0 votes
Je pense que copy_tree est ce que vous recherchez.