Ich muss alle Dateien und Ordner des aktuellen Ordners in ein Unterverzeichnis kopieren. Wie kann ich dies am besten tun? Ich habe das folgende Snippet versucht, aber es schlägt fehl, wenn das Zielverzeichnis bereits existiert.
def copy(d=os.path.curdir):
dest = "t"
for i in os.listdir(d):
if os.path.isdir(i):
shutil.copytree(i, dest)
else:
shutil.copy(i, dest)
Ich habe das Gefühl, dass dieselbe Aufgabe besser und einfacher erledigt werden kann. Wie kann ich das tun?
0 Stimmen
Ist der Zielunterordner leer, wenn Sie den Kopiervorgang starten?
0 Stimmen
Das Snippet ist völlig fehlerhaft. 1) Was ist der Grund für die
copytree
auf Unterverzeichnissen und nicht auf dem Stammverzeichnis? 2)d
,dest
nicht verwendet werden.0 Stimmen
@khachik sorry, hatte in Eile getippt. [2] Erledigt.
0 Stimmen
@khachik [1] Ich hatte das Gefühl, dass das Kopieren des Inhalts von directory/ nach directory/inner_directory ein Problem verursachen würde, da inner_directory versuchen würde, sich selbst zu kopieren. Ein OSError, vermutete ich.
0 Stimmen
@Sven ja, zunächst wäre der Unterordner, in den ich zu kopieren versuche, leer.
0 Stimmen
@zubin71 in diesem Fall
shutil.copytree(os.path.join(i), os.path.join(dest, i)
. Siehe meine Antwort.