Maison > développement back-end > Tutoriel Python > Pourquoi mon Python CSV Writer ajoute-t-il des retours chariot supplémentaires sous Windows ?

Pourquoi mon Python CSV Writer ajoute-t-il des retours chariot supplémentaires sous Windows ?

Linda Hamilton
Libérer: 2024-12-07 02:14:11
original
329 Les gens l'ont consulté

Why Does My Python CSV Writer Add Extra Carriage Returns on Windows?

CSV en Python ajoute un retour chariot supplémentaire sous Windows

L'extrait de code fourni génère un fichier CSV avec un retour chariot supplémentaire inattendu (r) sur chaque rangée. Au lieu du résultat souhaité :

hi,dude
hi2,dude2
Copier après la connexion

Le fichier se lit comme suit :

hi,dude\r
\r
hi2,dude2\r
\r
Copier après la connexion

Ce comportement est dû à la gestion des terminaisons de ligne spécifiques à la plate-forme.

La documentation officielle CSV suggère d'utiliser newline='' lors de l'ouverture pour désactiver la traduction universelle des nouvelles lignes :

with open('output.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    # ...
Copier après la connexion

Par défaut, l'éditeur CSV termine chaque ligne par 'rn', conformément à la RFC 4180.

Python 2

Sous Windows, les fichiers doivent être ouverts en mode binaire ("rb" ou "wb") avant de passer les vers csv.reader ou csv.writer. Bien que CSV soit un format texte, il est considéré comme binaire par les bibliothèques impliquées, avec un « rn » séparant les enregistrements. Lorsqu'il est écrit en mode texte, le runtime Python remplace « n » par « rn », ce qui entraîne les retours chariot supplémentaires observés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal