Seite 1 von 1

Ausführung Bash-Befehl, falsches Ergebnis

Verfasst: Montag 30. Mai 2016, 16:21
von Nobuddy
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

Re: Ausführung Bash-Befehl, falsches Ergebnis

Verfasst: Montag 30. Mai 2016, 17:21
von Dav1d
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.

Re: Ausführung Bash-Befehl, falsches Ergebnis

Verfasst: Montag 30. Mai 2016, 18:19
von Nobuddy
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

Re: Ausführung Bash-Befehl, falsches Ergebnis

Verfasst: Montag 30. Mai 2016, 18:49
von __deets__
Ausser das du dich verfummelt hast - nein. Niemand transkodiert eine Datei durch umbenennen.

Re: Ausführung Bash-Befehl, falsches Ergebnis

Verfasst: Dienstag 31. Mai 2016, 09:29
von Nobuddy
Hallo __deets__,

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

Grüße Nobuddy