Script zum Bilder verschieben

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.
Antworten
Benosianer
User
Beiträge: 3
Registriert: Montag 4. Februar 2013, 19:51

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
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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
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.
Benosianer
User
Beiträge: 3
Registriert: Montag 4. Februar 2013, 19:51

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
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Dann gibt es wohl keine Datei "C:\Users\Ben\Documents\python\test\xyz.jpg".
Benosianer
User
Beiträge: 3
Registriert: Montag 4. Februar 2013, 19:51

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.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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.
Antworten