Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
hab mir ein kleinen Code geschrieben, welcher mit alle .txt Dateien anzeigen lassen und mir in ein bestimmtes Verzeichnis kopieren soll.
Allerdings kopiert er mir nur die .txt Files welche in meinem Arbeitsverzeichnis liegen und nicht alle die er ab dem Wurzelverzeichnis findet.
ziel = '/home/user/Python/temp'
for root, dirs, files in os.walk('.'):
for file in files:
if file.endswith(".txt"):
#print(os.path.abspath(".")
print(os.path.join(root, file))
print(os.getcwd())
shutil.copy2(file, ziel)
hätte jem evtl eine Idee ? mfg
Zuletzt geändert von Anonymous am Sonntag 12. Februar 2017, 13:18, insgesamt 1-mal geändert.
Grund:Quelltext in Python-Codebox-Tags gesetzt.
Na ja, der '.' in Zeile 2 steht in dem Kontext nun mal für das aktuelle Arbeitsverzeichnis. Wenn du etwas anderes möchtest, musst du da etwas anderes hinschreiben. Wenn du das root-Verzeichnis mit "Wurzelverzeichnis" meinst und wirklich den gesamten Verzeichnisbaum absuchen möchtest, also z.B. '/'.
Übrigens: An sich ist dafür kein eigenes Skript notwendig; das lässt sich auch in einer Zeile mit 'find' erledigen.
Wenn ich statt dem '.' das Symbol für das Wurzelverzeichnis ' / ' ersetze erhalte ich folgenden Fehler:
IOError: [Errno 2] No such file or directory: 'bla.txt'
meine Vermutung ist das er mit relativen Pfaden beim durchsuchen und kopieren der Verzeichnisstruktur nicht klarkommt.
Wenn ich für den Kopierbefehl absolute Pfade verwende, kopiert er auch außerhalb des Arbeitsverzeichnis die Dateien ohne Problem.
Jetzt war die Idee relative Pfade in absoulute Pfade mit einem Befehl umzuwandeln .!?. und dann zu kopieren, aber das ging auch nicht ...
@setiinch: Du musst die Pfade halt entsprechend mit `os.path.join()` zusammensetzen. Machst Du ja auch schon für den Quellpfad, nur dass Du den einfach nur ausgibst, aber nicht im Programm verwendest.
Oh, diese Verwendung war eigentlich nicht meine Intention, als ich sie vorgeschlagen habe; externe Aufrufe für Dinge, die Python selbst beherrscht, sind eher ungünstig.