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
Script zum Bilder verschieben
- 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
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
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
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.
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.
-
- 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:
LG
Benosianer
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:
Mein Quelltext bis jetz (nur als Übung für das Script das folgen soll):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'
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")
Benosianer
- 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".
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
-
- User
- Beiträge: 3
- Registriert: Montag 4. Februar 2013, 19:51
Ich habe sie doch extra angelegt, und den Pfad noch aus den Eigenschaften extra herauskopiert.cofi hat geschrieben:Dann gibt es wohl keine Datei "C:\Users\Ben\Documents\python\test\xyz.jpg".
- 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.
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.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte