Ich habe ein Verzeichnis mit ~ 10.000 Bilddateien von einer externen Quelle.
Viele der Dateinamen enthalten Leerzeichen und Satzzeichen, die nicht DB- oder Web-freundlich sind. Ich möchte auch eine SKU-Nummer an das Ende jedes Dateinamens anhängen (zu Abrechnungszwecken). Viele, wenn nicht die meisten Dateinamen enthalten auch erweiterte lateinische Zeichen, die ich für SEO-Zwecke behalten möchte (insbesondere, damit die Dateinamen den Dateiinhalt in Google Bilder genau wiedergeben).
Ich habe ein Bash-Skript erstellt, das alle Dateien in das gewünschte Ergebnis umbenennt (kopiert). Das Bash-Skript wird in UTF-8 gespeichert. Nach dem Ausführen werden ca. 500 Dateien ausgelassen (Datei kann nicht erstellt werden ...).
Ich habe convmv -f UTF-8 -t UTF-8 für das Verzeichnis ausgeführt und festgestellt, dass diese 500 Dateinamen nicht in UTF-8 codiert sind (convmv kann bereits in UTF-8 vorhandene Dateinamen erkennen und ignorieren).
Kann ich auf einfache Weise herausfinden, welche Sprachcodierung sie aktuell verwenden?
Der einzige Weg, wie ich es selbst herausfinden konnte, ist, meine Terminal-Codierung auf UTF-8 zu setzen und dann alle wahrscheinlichen Kandidaten-Codierungen mit convmv zu durchlaufen, bis ein konvertierter Name angezeigt wird, der "richtig aussieht". Ich kann nicht sicher sein, dass diese 500 Dateien alle die gleiche Codierung verwenden, daher müsste ich diesen Vorgang 500 Mal wiederholen. Ich hätte gerne eine automatisiertere Methode als "sieht gut aus" !!!
Dies kann nützlich sein, um das aktuelle Arbeitsverzeichnis (Python 2.7) zu testen:
Ergebnis sieht so aus:
Um den Pfad aus dem aktuellen Verzeichnis wiederzugewinnen, schneiden Sie ihn aus und fügen Sie ihn in ein kleines Python-Skript ein:
quelle