Umlaute durch Stringopreation verändert
Verfasst: Dienstag 9. August 2005, 12:16
Hi,
Ich möchte eine Dateistruktur in der die Datei- / Ordnernamen nicht in einem einheitlichem Zeichensatz vorliegen ändern, dass alles einem Zeichensatz (iso8859-15) entspricht.
Dazu habe ich schon ein Tool gefunden convmv. Mein Problem ist nun dass leider nicht alle Änderungsvorschläge von convmv richtig sind.
Jetzt kommt Python ins Spiel. Mit convmv kann ich eine Datei erzeugen die wie folgt aufgebaut ist:
Ich möchte daraus nun ein "Frage / Antwortspiel" für die Shell machen.
Mein Script soll mir den aktuellen Dateinamen und darunter den neuen Dateinamen ausgeben. Damit ich dann entscheiden kann, ob noch Änderungen am neuen Dateinamen vorgenommen werden müssen, oder ob die Änderungen so übernommen werden können.
Bisher hebe ich:
Das Problem ist nun, wie im folgenden Beispiel zu sehen, dass auch vorher richtige Änderungsvorschläge durch mein Script wieder zu Nichte gemacht werden. (Abgründe -> Abgrnde)
Hat jemand eine Idee?
cu sebastian
Ich möchte eine Dateistruktur in der die Datei- / Ordnernamen nicht in einem einheitlichem Zeichensatz vorliegen ändern, dass alles einem Zeichensatz (iso8859-15) entspricht.
Dazu habe ich schon ein Tool gefunden convmv. Mein Problem ist nun dass leider nicht alle Änderungsvorschläge von convmv richtig sind.
Jetzt kommt Python ins Spiel. Mit convmv kann ich eine Datei erzeugen die wie folgt aufgebaut ist:
Code: Alles auswählen
mv "pfad/alterDateiname" "pfad/neuerDateiname"
Mein Script soll mir den aktuellen Dateinamen und darunter den neuen Dateinamen ausgeben. Damit ich dann entscheiden kann, ob noch Änderungen am neuen Dateinamen vorgenommen werden müssen, oder ob die Änderungen so übernommen werden können.
Bisher hebe ich:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso8859-15 -*-
import sys, os, string
Eingabe_Datei = file('/home/sabba/mnt/daten-alle/umlauts.txt', 'r')
for Zeile in Eingabe_Datei:
print Zeile.replace('\n','')
eintrag = Zeile.split('" "/')
links = eintrag[0].replace('mv "','')
pfad,alt = os.path.split(links)
weg,neu = os.path.split(links)
print 'pfad ', pfad
print 'alt ', alt
print 'neu', neu
Eingabe_Datei.close()
Code: Alles auswählen
mv "Insignium/02. In die Abgrnde" "/Insignium/02. In die Abgründe"
pfad /Insignium
alt 02. In die Abgrnde
neu 02. In die Abgrnde
cu sebastian