Ausführung Bash-Befehl, falsches Ergebnis

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Nobuddy
User
Beiträge: 994
Registriert: Montag 30. Januar 2012, 16:38

Hallo zusammen,

habe eine Datei, die ich in das utf-8-Format konvertieren möchte.
Leider klappt das mit decode/encode nicht.
Nun habe ich über mein Terminal mit iconv, die Datei in das utf-8-Format konvertieren können.
Da ich regelmäßig, diese Datei aufs Neue konvertieren muss, habe ich in python das so umgesetzt.

Code: Alles auswählen

            command = 'iconv --verbose -f iso-8859-15 -t utf-8 {} -o {}/output.txt'.format(
                self.finish_path, os.path.abspath(Path('download_suppliers_finish_lists')))
            os.system(command)
Der Befehl im Terminal, sieht so aus:[codebox=bash file=Unbenannt.bsh]cd /gehe/zu/ordner
iconv --verbose -f iso-8859-15 -t utf-8 120.txt -o output.txt[/code]

Über python kommt ist die Konvertierung fehlerhaft.
Über das Terminal stimmt das Resultat!

Vielleicht kann mir Jemand von Euch sagen, was ich falsch mache, bzw. wie es richtig sein muss?

Grüße Nobuddy
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Was hast du probiert und was ist der Fehler?

Code: Alles auswählen

with open(path, 'rb') as in_, open(out_path, 'wb') as out:
    out.write(in_.read().decode('iso-8859-15').encode('utf-8'))
Alternativ kannst du dir auch das codecs-Modul anschauen, um Dateien mit einem bestimmten Encoding zu öffnen.
the more they change the more they stay the same
Nobuddy
User
Beiträge: 994
Registriert: Montag 30. Januar 2012, 16:38

Hallo David,

Danke für Deine Hilfe!
Dein Code-Vorschlag funktioniert, so dass ich den Bash-Code nicht mehr benötige.

Habe da aber noch ein Problem, das mich ziemlich irritiert.
Wenn jetzt aus meine_datei.txt (iso-8859-15), neue_datei.txt (utf-8) erstellt wurde und ich neue_datei.txt in meine_datei.txt umbenenne, so hat diese wieder das Format iso-8859-15. Vor dem Umbennen hat sie aber das Format utf-8.

Gibt es dafür eine Erklärung?

Grüße Nobuddy
__deets__
User
Beiträge: 14536
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ausser das du dich verfummelt hast - nein. Niemand transkodiert eine Datei durch umbenennen.
Nobuddy
User
Beiträge: 994
Registriert: Montag 30. Januar 2012, 16:38

Hallo __deets__,

Du hattest recht, habe "vor lauter Wald, keine Bäume gesehen" ...... :wink:
Jetzt ist mein Problem gelöst.

Grüße Nobuddy
Antworten