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
Le fichier se lit comme suit :
hi,dude\r \r hi2,dude2\r \r
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) # ...
Par défaut, l'éditeur CSV termine chaque ligne par 'rn', conformément à la RFC 4180.
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!