Ich habe im Urlaub mal wieder viele Bilder gemacht und bin gerade dabei mir Bilder rauszusuchen, die zu einer Belichtungsreihe gehören (für HDR Photos) Im Prinzip suche ich ne Möglichkeit Bilder, die innerhalb von 2 Sekunden aufgenommen wurden in jeweils ein Unterverzeichnis zu schieben. Hat jemand ne Idee, wie ich das mit einer Batchdatei, shell-skript oder ähnlich lösen kann?
Mach's von Hand. 10000 Bilder hast du in einer Stunde durchgescrollt. In der Zeit hast Du kein Skript geschrieben, getestet, debugged und ausgeführt.
Gast
#2434462
Man könnte eine Directory-Ausgabe in eine Textdatei umleiten und diese dann in eine Tabellenkalkulation-Software freier Wahl importieren und dort über eine Abfrage (bei Excel nennt sich das Ding "Wenn"...) die einzelnen Datume (heisst das so?) vergleichen lassen und die kleinste Differenz anzeigen lassen. 3-10 Minuten dürfte sowas dauern...
STK500-Besitzer schrieb: > Man könnte eine Directory-Ausgabe in eine Textdatei umleiten Gute Idee, leider gibt "dir" mir die Sekunden nicht mit an...
Gast
#2434579
Mit ExifTool kannst du dir per Perl Scipt aus den Exifdaten z.B. Brennweite, Kameraorientierung, Aufnahmezeitpunkt und - soweit vorhanden - auch noch Standortkoordinaten und Blickrichtung herausziehen. http://www.sno.phy.queensu.ca/~phil/exiftool/ Das sollte für ein ausreichend zuverlässiges Filter reichen. Falls das eine einmalige Aktion ist, s.o.
Gast
#2434707
Pink Shell schrieb: > Mach's von Hand. 10000 Bilder hast du in einer Stunde durchgescrollt. In > der Zeit hast Du kein Skript geschrieben, getestet, debugged und > ausgeführt. Und beim nächsten Urlaub dann wieder. Wie man mit fast 3 Bildern pro Sekunde das EXIF-Datum liest, Ordner anlegt und bei Bedarf verschiebt, möchte ich sehen. Habe beim Abendessen etwas gebastelt (die Stunde kam inklusive Einlesen in nötige Module ungefähr hin). Das Ergebnis braucht python und PIL, hat keine Sicherheitsmaßnahmen gegen bösartige Dateinamen, muss unter Windows wahrscheinlich etwas angepasst werden und ist nur minimal getestet. Zur Vorsicht wird nichts verschoben, sondern es werden Befehle ausgegeben, die man in ein hinterher auszuführendes Shellscript umleiten kann. Aufruf mit
1 | |
Stil und Qualität dürfen gerne kritisiert werden Grüße
Gast
#2434709
Wie immer sieht man den ersten Bug (das letzte File im Ordner wurde ignoriert) erst nach der Veröffentlichung :(
Hallo Tom, vielen Dank für das Skript. Da ich bisher nicht mit Python gearbeitet habe musste ich mich erst was einlesen. Wie du schon vermutet hast, benötigt das für Windows7 noch Anpassungen. Ich habe mir portable Python von hier installiert (enthält dann auch PIL) http://www.portablepython.com/wiki/PortablePython2.7.2.1 Dann habe ich den PyScripter gestartet, dein Skript reinkopiert, die Kommandozeilenparameter auf C:\Test gesetzt und gestartet. Folgende Ausgabe:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Suchen und Auswählen der passenden Dateien funktioniert also schon. Leider gibt es anscheinend Probleme mit dem BackSlash bzw. Schrägstrich. Also habe ich den Schrägstrich ausgetauscht
1 | |
gegen das getauscht.
1 | |
Dann wird aber der Backslash ignoriert
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Geht also auch nicht... Zusätzlich werden die Befehle auch nicht vom Betriebssystem ausgeführt. (Mir ist klar, dass ich mv noch gegen move austauschen muss, aber der mkdir geht ja auch nicht)
Gast
#2434945
Werner A. schrieb: > Zusätzlich werden die Befehle auch nicht vom Betriebssystem ausgeführt. > (Mir ist klar, dass ich mv noch gegen move austauschen muss, aber der > mkdir geht ja auch nicht) Liegt daran: Tom schrieb: > Zur Vorsicht wird nichts verschoben, sondern es werden Befehle > ausgegeben, die man in ein hinterher auszuführendes Shellscript umleiten > kann. Also: Ausgabe des Programms in eine (.BAT)-DAtei schreiben lassen, und die dann prüfen und ausführen.
Gast
#2435124
Hallo, der \ escaped traditionell das nächste Zeichen, damit er im String erhalten bleibt, muss er selbst escaped werden, also z.B.
1 | |
Statt der .BAT kann man evtl. auch Befehle mit os.system() ausführen, statt sie mit print auszugeben. Das DELTA in der korrigierten Version muss auch angepasst werden, falls Du das nicht schon selbst gesehen hast, ich hatte keinen Bilderordner mit Fotos im Sekundenabstand zum testen.
Hallo Tom, nochmals vielen Dank für deine tolle Arbeit. Ich habe gerade alle Bilder wegsortiert (wegsortieren lassen) Wieder 'nen bischen was gelernt und für den nächsten Urlaub vorbereitet ;-) Wenn es noch jemand gebrauchen kann, hier die notwendigen Schritte - http://www.portablepython.com/wiki/PortablePython2.7.2.1 herunterladen - nach c:\Portable installieren - HDRsearch.py nach c:\Portable\Portable Python 2.7.2.1\MyApps kopieren - HDR_prepare.bat in das Verzeichnis mit den Bildern kopieren und aufrufen Es werden hier keine Dateien verschoben, sondern nur die Datei HDR_move.bat erzeugt. - Die Datei HDR_move.bat mit nem Editor öffnen und überprüfen, z.B. immer 3 Bilder verschoben werden sollen - Wenn die Datei HDR_move.bat dann aufgerufen wird werden Unterverzeichnisse angelegt und die entsprechenden Bilder verschoben.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.