Gestion des retours chariot inattendus dans les fichiers CSV en Python sous Windows
Un problème particulier peut survenir lors de la génération d'un fichier CSV en Python : un Un retour chariot supplémentaire (r) apparaît à la fin de chaque ligne sur les systèmes Windows. Cela diffère du comportement attendu, où chaque ligne se termine par un seul caractère de retour chariot (r) ou de nouvelle ligne (n), selon le système d'exploitation.
Pourquoi cela se produit
Sous Windows, le comportement par défaut de Python pour gérer les fichiers CSV est d'interpréter le séparateur de ligne comme une nouvelle ligne universelle (n), ce qui est différent du séparateur de ligne Unix standard (rn). Par conséquent, l'éditeur CSV ajoute un double retour chariot (rr) lors de l'écriture dans un fichier, provoquant l'apparition d'une ligne vierge supplémentaire.
Résoudre le problème
Pour résoudre ce problème, vous pouvez désactiver la traduction universelle de nouvelle ligne en spécifiant newline='' lors de l'ouverture du fichier.
Python 3 :
with open('output.csv', 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f)
Python 2 :
Pour Python 2, il est recommandé d'ouvrir le fichier en mode binaire ('rb' ou 'wb ') avant de le transmettre au rédacteur CSV. En effet, CSV est considéré comme un format binaire avec des séparateurs de ligne stockés sous forme d'octets bruts.
with open('output.csv', 'wb') as f: writer = csv.writer(f)
En suivant ces recommandations, vous pouvez empêcher l'ajout de retours chariot supplémentaires au fichier CSV, garantissant ainsi qu'il respecte aux conventions de séparation de lignes souhaitées.
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!