Wie kann ich Fotos aus EXIF-Daten umbenennen?

923
user2189

Ich habe ein DCIMVerzeichnis mit Fotos, die als IMG_.JPGvom iPhone bezeichnet werden, und Fotos, die als DSC_.JPGvon Xperia bezeichnet werden. Dieses Verzeichnis ist das Ergebnis einer Zusammenführung mehrerer Verzeichnisse, die alle unterschiedliche Fotos mit denselben Namen hatten (z. B. verschiedene Fotos des iPhone 3GS .../DCIM/IMG_0001.JPG, iPhone 4S .../DCIM/IMG_0001.JPGund iPhone 5s .../IMG_0001.JPGoder Xperia Z3 + vor dem Wiederherstellen .../DCIM/100ANDRO/DSC_0001.JPGund Xperia Z3 + nach dem Wiederherstellen .../DCIM/100ANDRO/DSC_0001.JPGverschiedener Fotos). Um Fotos zu umbenennen so dass keiner es von einer anderen ging, suchte ich ‚Löcher‘ in der Liste (zB wenn PIC10.JPGseit dem aber gelöscht PIC9.JPGund PIC11.JPGsind immer noch hier, ich habe ein Loch, so kann ich die zweiten umbenennen PIC1.JPGzu, PIC10.JPGdamit ich es nicht verlieren und enden Sie nicht mit einem unordentlichen Verzeichnis, das Dateien enthält, die wie Name (doppelte Namen) aussehen.

Ich möchte die aktuelle Nomenklatur für Fotos wie iPhone-Fotos in IMG_.JPGund Xperia-Fotos in beibehalten DSC_.JPG.

Ich möchte Bilder in der Reihenfolge benennen sie aus den EXIF - Daten (zB wenn das obige Beispiel die genommen wurden, PIC1-2.JPGdie gingen, PIC10.JPGbevor geschossen wurde PIC1.JPGdann dies PIC10.JPGwird PIC1.JPGund alle folgenden Fotos werden umbenannt PIC.JPG, oder PIC.JPGwenn x Fotos auf der Liste der Anfang kommen) - Exifless-Fotos zuerst setzen (dh das erste gefundene Exifless-Foto wird PIC1.JPG, das zweite wird PIC2.JPGusw.).

Ich möchte die Fotos nicht anders als mit ihrer ursprünglichen Nomenklatur umbenennen (dh nicht { Date } iPhone photo.jpgoder Xperia photo from { Date }.jpeg).

Gibt es eine Möglichkeit, dies einfach zu tun? Ich würde mir lieber eine Befehlszeilenmethode dafür besorgen, aber selbst ein Automator-Skript oder ein kombinierter Ansatz (z. B. ein Automator-Skript, das ein Shellskript aufruft) reicht aus - solange das Ding nicht läuft, habe ich es nicht Berühren Sie die Tastatur, bis der Job abgeschlossen ist.

Vielen Dank.

0
Sie können Python verwenden. Versuchen Sie das Skript [this] (https://gist.githubusercontent.com/meaniruth/9d1d7f4a89534f67970c/raw/2cc81abc6bd0375eef29828cecf7e1d1c51cc8bf/rename_images.py). Michael D vor 8 Jahren 0
Willkommen bei Super User! Bitte beachten Sie, dass [SU] kein Skriptschreibservice ist. Wenn Sie uns sagen, was Sie bisher versucht haben (einschließlich der von Ihnen verwendeten Skripts) und wo Sie stecken bleiben, können wir versuchen, bei bestimmten Problemen zu helfen. Sie sollten auch [Wie kann ich eine gute Frage stellen?] (Http://superuser.com/help/how-to-ask) lesen. DavidPostill vor 8 Jahren 0
@MichaelD Das Skript wird leider in "Datum [8:10] +" - "+ Datum [5: 7] +" - "+ Datum [: 4] + Bildformat" umbenannt. Ich denke, es braucht Bedingungen, um nur die vierstellige Zahl von der älteren zur neuen zu erhöhen, aber ich bin nicht sicher, wie ich das schreiben soll. Trotzdem danke. user2189 vor 8 Jahren 0
@ DavidPostill Hallo. Ich habe kein Skript ausprobiert (außer dem Link von Michael D.), solange ich kein Skript finden konnte, das das tut, was ich will. Ich nehme an, Sie meinen, dass dieser Beitrag zu Stack Overflow gehört, tut mir leid für den falschen Ort. user2189 vor 8 Jahren 0
@kvpb Wo auch immer du postest, erwarten wir etwas Mühe. Es würde auch wegen mangelnder Anstrengung geschlossen werden. DavidPostill vor 8 Jahren 0
@DavidPostill Welcher Mangel an Aufwand? Der Mangel an Mühe, sich nicht daran zu erinnern, wie man diese Art von Code schreibt und nicht die Zeit hat, darüber zu suchen, bis ich es gelöst habe? Das Schreiben erinnert mich daran, dass ich einfach nichts gefragt hätte, wenn ich das tun würde, und ich hätte es selbst geschrieben. Mein Beitrag ist klar und klar geschrieben ("Ich habe diese Puzzleteile; ich möchte, dass das Rätsel so nahe wie möglich gelöst wird"). Mein Beitrag ist nicht weniger detailliert als die meisten Beiträge, auf die Sie geantwortet haben. Deshalb werde ich Sie mit gebührendem Respekt bitten, diesen fehlgeleiteten Kommentar für sich zu behalten, Sir. user2189 vor 8 Jahren 0
@kvpb "Welcher Mangel an Aufwand?" Siehe oben. "Super User ist kein Skriptschreibservice. Wenn Sie uns sagen, was Sie bisher versucht haben (einschließlich der von Ihnen verwendeten Skripts) und wo Sie stecken bleiben, können wir versuchen, bei bestimmten Problemen zu helfen." Bitte denken Sie daran, dass wir hier Freiwillige sind, die Fragen in unserer eigenen Zeit und kostenlos beantworten. Wenn Sie keine Zeit haben, mindestens ein Skript zu schreiben oder Nachforschungen anzustellen, sollten Sie jemanden einstellen, der die Arbeit erledigt. DavidPostill vor 8 Jahren 0
@kvpb Das gleiche gilt für [so]. Wenn Sie Ihre Frage dort stellen, werden sie genau dieselbe Antwort geben. DavidPostill vor 8 Jahren 0
@DavidPostill Dass SuperUser nicht die richtige Community ist, um dies zu veröffentlichen, habe ich verstanden - einmal ist genug. Nun, Ihr Kommentar erklärt Punkt für Punkt, was nicht passt, ich kann Ihnen konstruktiver antworten. Ich habe nicht erwähnt, was ich versucht habe, da ich einfach nicht [nach Recherche bei Google, GitHub, BitBucket usw.] finden konnte oder [nur die Zeit nicht haben] etwas Passendes schrieb. Ich weiß, dass die Leute hier Freiwillige sind (mit Reputationspunkten belohnt, darf ich hervorheben), was dazu führt, dass man nicht verpflichtet ist, überhaupt zu helfen. Ich frage nach Hilfe; wenn jemand hilft, danke ich so gut ich kann, wenn mir niemand zu schlecht hilft. user2189 vor 8 Jahren 0
@DavidPostill Es hängt sehr viel vom Antwortenden ab, während ich gesehen habe, wie es beim Stack Overflow passiert. Aber dann wüsste ich einfach nicht, was ich sagen oder tun sollte, da jemand, der nach einem Post gefragt hat, in dem etwas detailliert beschrieben wurde, die Dinge offensichtlich nicht selbst lösen konnte. Lassen Sie mich Massenurteile über Spekulationen vermeiden, aber nehmen Sie das Problem andersherum, indem Sie Folgendes erwähnen: Wenn Leute nur antworten, wenn die Antwort gefunden wurde oder nur um etwas zu korrigieren, was das Originalplakat nicht gesehen hat, sind die gleichen Leute darauf beschränkt offensichtlich als Wissen - so könnte die Google-Suche dasselbe tun. : / user2189 vor 8 Jahren 0
@DavidPostill Nun, da dies nicht hierher gehört, habe ich an dem Tag, an dem ich Ihren ersten Kommentar gelesen hatte, nach Stack Overflow gesucht und konnte nichts finden, das dem Bedarf entspricht. Bis heute habe ich klar verstanden, dass ich ein Python-Handbuch finden und dieses selbst schreiben muss. Wenn mir Zeit fehlt, bleibe ich vorerst bei der manuellen Umbenennung von Dateien. Habe eine gute Fortsetzung. [Bearbeiten: Um sicher zu sein, habe ich meinen ursprünglichen Beitrag noch einmal gelesen, der "einen Befehlszeilenweg" und nicht nur "ein Skript" angibt. Ich denke, dieser Beitrag könnte sowohl für SuperUser als auch für Stack Overflow relevant sein.] user2189 vor 8 Jahren 0

0 Antworten auf die Frage