2017-04-03 4 views
2

Ich habe eine eine Zeile txt-Datei mit einem Bündel von Unicode-Zeichen ohne LeerzeichenPython - Unicode-Datei IO

Beispiel

Und ich möchte eine txt-Datei ausgeben mit einem Zeichen auf jeder Zeile

Wenn ich versuche, dies zu tun, denke ich am Ende die Unicode-Zeichen aufteilen, wie kann ich darüber gehen?

+0

Können Sie den Code einbeziehen, den Sie bisher ausprobiert haben? –

Antwort

-1

Dies funktioniert in Python 3,5

line = "" 
with open("file.txt", "w", encoding="utf8") as f: 
    f.write("\n".join(line)) 
3

Es gibt nicht so etwas wie eine Textdatei mit einem Bündel von Unicode-Zeichen, es macht nur Sinn, über ein „Unicode-Objekt“ zu sprechen, sobald die Datei gelesen wurde und in Python-Objekte dekodiert. Die Daten in der Textdatei sind auf die eine oder andere Weise codiert.

So ist das Problem über das Lesen der Datei in der richtigen Weise, um die Zeichen zu Unicode-Objekten korrekt zu dekodieren.

Oben Ich nehme an, die Ziel-und Quelldatei-Kodierungen sind beide utf-8. Dies ist nicht unbedingt der Fall, und Sie sollten wissen, wofür die Quelldatei codiert ist. Sie können wählen enc_target, aber jemand muss Ihnen enc_source sagen (die Datei selbst kann es Ihnen nicht sagen).

+0

nur aus Neugier, gibt es einen Vorteil/Unterschied zu Ihrem Ansatz über 'codecs.open()'? Oder sind "Codecs" eine Python 2-Sache? – patrick

+1

Ich werde nur hinzufügen, dass 'io.open' ist der bessere Weg für Cross-Compat, und' Codecs' ist Legacy. Es gibt einige technische Unterschiede, die Sie bei Interesse googeln können. – wim

Verwandte Themen