Seite 1 von 1

Script zum Bilder verschieben

Verfasst: Montag 4. Februar 2013, 20:08
von Benosianer
Hallo leute :)
eine kleine Vorgeschichte:
Ich habe mich vor gut einem Jahr bereits einmal mit Python bzw. Programmierung auch im allgemeinen beschäftigt, damals jedoch keine Verwendung dafür gefunden und deshalb schnell die Lust verloren.
Die Verwendung habe ich jetzt, Lust kommt auch auf, doch auch nach dutzenden Tutorials komm ich einfach nicht auf eine Idee, wie ich folgendes, simples Problem löse:
Ich habe einen Ordner mit wiederum 20 Ordnern. In diesen 20 Ordnern sind jeweils 1400 Bilder. Ich möchte nun in jedem dieser Ordner wiederrum 5 Ordner erstellen und diese mit jeweils 300 und den letzten mit 200 Bildern füllen.
Allerdings habe ich offen gesagt keinerlei Idee, wie ich das bewerkstelligen soll und könnte deshalb eure Hilfe gebrauchen :)
mfG
Benosianer

Re: Script zum Bilder verschieben

Verfasst: Montag 4. Februar 2013, 20:34
von cofi
Willkommen im Forum und (zurueck) zu Python!

Um nicht zu viel zu verraten hier ein paar Ansatzpunkte:

http://docs.python.org/2/library/os.html#os.listdir

Mit `enumerate(os.listdir(path))` kommst du an eine durchnummerierte Dateiliste und musst nur an den richtigen Punkten den Ordner wechseln.

http://docs.python.org/2/library/os.html#os.mkdir

http://docs.python.org/2/library/shutil ... l.copyfile

Re: Script zum Bilder verschieben

Verfasst: Montag 4. Februar 2013, 20:55
von BlackJack
Alternativ zu `enumerate()` kann man auch die entsprechenden Sublisten „slicen”.

Zum Verschieben kann man `shutil.move()` verwenden.

Und man sollte bei solchen Sachen immer die Möglichkeit einbauen sich nur ausgeben zu lassen was passieren würde (a.k.a. „dry run”) statt tatsächlich eine möglicherweise datenvernichtende Aktion durchzuführen.

Re: Script zum Bilder verschieben

Verfasst: Dienstag 5. Februar 2013, 19:09
von Benosianer
Vielen Dank für die schnelle Hilfe.
Ich habe gestern als trockenübung einfach mal folgendes probiert:
In ordner x wechseln, neuen Ordner erstellen, Datei y in neuen Ordner schieben.
Allerdings bekomme ich immer wieder den folgenden Fehler:
Traceback (most recent call last):
File "C:\Users\Ben\Documents\python\whatever.py", line 17, in <module>
shutil.move ("xyz.jpg", "300")
File "C:\Python27\lib\shutil.py", line 299, in move
copy2(src, real_dst)
File "C:\Python27\lib\shutil.py", line 128, in copy2
copyfile(src, dst)
File "C:\Python27\lib\shutil.py", line 82, in copyfile
with open(src, 'rb') as fsrc:
IOError: [Errno 2] No such file or directory: 'xyz.jpg'
Mein Quelltext bis jetz (nur als Übung für das Script das folgen soll):

Code: Alles auswählen

import os
import shutil

#ich bin in Verzeichnis:
currentdir = os.path.abspath(".")
print currentdir

#wechsel in testverzeichnis
testdir = r"C:\Users\Ben\Documents\python\test"
os.chdir (testdir)
currentdir = os.path.abspath(".")
print currentdir

#neuer ordner
os.mkdir ("300")

#xyz.jpg in 300 verschieben
shutil.move ("xyz.jpg", "300")


LG
Benosianer

Re: Script zum Bilder verschieben

Verfasst: Dienstag 5. Februar 2013, 19:19
von cofi
Dann gibt es wohl keine Datei "C:\Users\Ben\Documents\python\test\xyz.jpg".

Re: Script zum Bilder verschieben

Verfasst: Dienstag 5. Februar 2013, 19:25
von Benosianer
cofi hat geschrieben:Dann gibt es wohl keine Datei "C:\Users\Ben\Documents\python\test\xyz.jpg".
Ich habe sie doch extra angelegt, und den Pfad noch aus den Eigenschaften extra herauskopiert.

Re: Script zum Bilder verschieben

Verfasst: Dienstag 5. Februar 2013, 20:15
von cofi
Was erwartest du denn jetzt? Mehr als dir sagen, wofuer "xyz.jpg" als Pfad steht kann man mit den Informationen nicht.

Wenn du nicht weiterkommst, nimm dir mal den interaktiven Interpreter her und geh deinen Code Zeile fuer Zeile durch, lass dir die Pfade ausgeben, teste mit `os.path.exists` usw.