Als Python-Anfänger stolpere ich manchmal über das Codieren beim Lesen und Schreiben von CSV-Dateien, daher habe ich mir die Zusammenfassung des Inhalts notiert. Es ist auch ein ** Artikel für Anfänger **. Die Umgebung wird die Windows-Umgebung sein.
Informationen zu Fehlern, die beim Lesen und Schreiben von CSV-Dateien häufig auftreten
Fehlerinhalt
UnicodeEncodeError: 'shift_jis' codec can't encode character '\u9ad9' in position 14: illegal multibyte sequence
Dies bedeutet, dass es einige Zeichen gibt, die nicht mit Shift-Jis codiert werden können. Es tritt auf, wenn der Zeichencode der Datei und der Zeichencode des geschriebenen Zeichens beim Schreiben der Datei nicht übereinstimmen.
Der Code wird übrigens hier angegeben.
Codebeispiel
with open(filepath, 'w', newline='', encoding='shift-jis') as f
Fehlerinhalt
UnicodeDecodeError: 'shift_jis' codec can't decode byte 0xee in position 0
Dies bedeutet, dass es einige Zeichen gibt, die nicht mit Shift-Jis codiert werden können. Es tritt auf, wenn der Zeichencode der Datei und der beim Lesen der Datei angegebene Zeichencode beim Lesen der Datei nicht übereinstimmen. (Alternativ werden Zeichen, die nicht mit dem beim Lesen der Datei angegebenen Zeichencode gelesen werden können, in die Datei geschrieben.)
Der Code wird übrigens hier angegeben.
Codebeispiel
data = pd.read_csv(filepath, encoding = 'shift-jis')
Wenn Sie eine Reihe von Operationen in Python erstellen, schreiben und lesen möchten, sollten Sie sie gemäß der folgenden horizontalen Achse angeben, damit kein Fehler auftritt. (Die Bedeutung des Zeichencodes der Datei stellt den Zeichencode von csv dar, der durch den zum Zeitpunkt des Schreibens angegebenen Zeichencode erstellt wurde.)
Zeichencode zum Zeitpunkt des Schreibens | Datei Zeichencode | Zeichencode zum Zeitpunkt des Lesens |
---|---|---|
UTF-8 | UTF-8 | UTF-8 |
cp932 | ansi | cp932 |
shift-jis | ansi | shift-jis |
** Wenn sowohl cp932 als auch shift-jis Dateien sind, ist es ansi, aber welche verwenden Sie? ** ** ** Ich denke, der größte Unterschied zwischen cp932 und shift-jis besteht darin, ob sie mit umgebungsabhängigen Zeichen wie ** Hashigodaka ** und ** 﨑 (Tatesaki) ** umgehen können oder nicht. Sie können cp932 verwenden. Wenn beispielsweise ansi csv-Dateien von anderen Systemen aus verknüpft werden, ist es besser anzunehmen, dass sie von cp392 anstelle von shift-jis importiert werden.
Recommended Posts