En tant que débutant en python, je suis parfois tombé sur le codage lors de la lecture et de l'écriture de fichiers csv, j'ai donc pris note du résumé du contenu. C'est aussi un ** article pour les débutants **. L'environnement sera l'environnement Windows.
À propos des erreurs souvent détectées lors de la lecture et de l'écriture de fichiers csv
contenu de l'erreur
UnicodeEncodeError: 'shift_jis' codec can't encode character '\u9ad9' in position 14: illegal multibyte sequence
Cela signifie que certains caractères ne peuvent pas être encodés avec shift-jis. Cela se produit lorsque le code de caractère du fichier et le code de caractère du caractère écrit ne correspondent pas lors de l'écriture du fichier.
Au fait, le code est spécifié ici.
Exemple de code
with open(filepath, 'w', newline='', encoding='shift-jis') as f
contenu de l'erreur
UnicodeDecodeError: 'shift_jis' codec can't decode byte 0xee in position 0
Cela signifie que certains caractères ne peuvent pas être codés avec shift-jis. Cela se produit lorsque le code de caractère du fichier et le code de caractère spécifié lors de la lecture du fichier ne correspondent pas lors de la lecture du fichier. (Ou, les caractères qui ne peuvent pas être lus avec le code de caractère spécifié lors de la lecture du fichier sont écrits dans le fichier.)
Au fait, le code est spécifié ici.
Exemple de code
data = pd.read_csv(filepath, encoding = 'shift-jis')
Si vous souhaitez créer, écrire et lire une série d'opérations sur python, vous devez les spécifier en fonction de l'axe horizontal ci-dessous, et aucune erreur ne devrait se produire. (La signification du code de caractère du fichier représente le code de caractère de csv créé par le code de caractère spécifié au moment de l'écriture)
Code de caractère au moment de l'écriture | Code de caractère de fichier | Code de caractère au moment de la lecture |
---|---|---|
UTF-8 | UTF-8 | UTF-8 |
cp932 | ansi | cp932 |
shift-jis | ansi | shift-jis |
** Si cp932 et shift-jis sont des fichiers, c'est ansi, mais lequel utilisez-vous? ** ** Je pense que la plus grande différence entre cp932 et shift-jis est de savoir s'ils peuvent ou non gérer des caractères dépendants de l'environnement tels que ** Hashigodaka ** et ** 﨑 (Tatesaki) **. Vous pouvez utiliser cp932. Ainsi, par exemple, lorsque les fichiers ansi csv sont liés à partir d'autres systèmes, il est préférable de supposer qu'ils seront importés par cp392 au lieu de shift-jis.