Lesen und Schreiben von SJIS-Dateien. Das Endergebnis ist ganz normal, aber ...
Zunächst gibt es ein Beispiel für die Verwendung von codecs.getreader / writer, wenn Sie sich normal bewegen.
Also nicht möglich. Verwenden Sie abschließend string.encode (), decode ()
Lesen:
for line in open('file.txt', 'rt'):
linedec = line.decode('cp932')
...
Auch das Schreiben ist
str(a_unicode_string)
Aufgrund der netten Spezifikation orz, die zu UnicodeEncodeError führt, untypisierte Objekte Bei der Verarbeitung können Sie sich nicht auf die Standardoperation verlassen und müssen diese selbst in eine Zeichenfolge konvertieren. Warum ist die Notation dieses Teils
'%s' % obj
Du kannst es schaffen. (Ich denke, es kann das gleiche sein wie das Verhalten str () dieses Codes)
Wenn ich versuche, eine Unicode-Zeichenfolge in eine geöffnete Datei zu schreiben, ohne einen Zeichencode festzulegen, wird außerdem ein UnicodeEncodeError angezeigt. Wenn Sie es im Textmodus öffnen, erfolgt es außerdem zum Löschen, anstatt es zu schreiben, sodass eine Fehlerbehebung nicht möglich ist, was ein ziemliches Problem darstellt. Es scheint es nicht als UTF16-Binärdatei zu behandeln.
Also exportieren:
f=open('sjis.txt', 'wt')
lineenc = linestr.encode('cp932')
print >>f, lineenc
print >>f, ('%s' % some_object).encode('cp932')
Recommended Posts