Maison > développement back-end > Tutoriel Python > Comment éviter les lignes vides dans les fichiers CSV écrits avec Python ?

Comment éviter les lignes vides dans les fichiers CSV écrits avec Python ?

Linda Hamilton
Libérer: 2024-12-31 10:48:10
original
369 Les gens l'ont consulté

How to Prevent Blank Lines in CSV Files Written with Python?

Fichiers CSV écrits avec Python : résolution des lignes vides entre les lignes

Le problème vient de la façon dont le module csv.writer de Python gère les fins de ligne. Lorsqu'il fonctionne en mode texte traduit (paramètre par défaut), il écrit à la fois un retour chariot (r) et une nouvelle ligne (n) dans le fichier pour chaque ligne. Cela peut entraîner des lignes vides supplémentaires lors de l'affichage dans Microsoft Excel sous Windows.

Solution :

Pour éviter ces lignes vides, il est crucial d'ouvrir le fichier de sortie dans un format non traduit mode texte. Dans Python 3, utilisez la syntaxe suivante :

with open('/pythonwork/thefile_subset11.csv', 'w', newline='') as outfile:
    writer = csv.writer(outfile)
Copier après la connexion

La chaîne vide ('') comme valeur du paramètre de nouvelle ligne garantit qu'aucun caractère de fin de ligne n'est ajouté, résolvant ainsi le problème de ligne vide.

Remarques supplémentaires :

  • Si vous utilisez le module Path, vous pouvez écrire dans le fichier en format non traduit mode texte comme suit :
from pathlib import Path

with Path('/pythonwork/thefile_subset11.csv').open('w', newline='') as outfile:
    writer = csv.writer(outfile)
Copier après la connexion
  • Pour la sortie de chaîne en mémoire, utilisez StringIO :
from io import StringIO

s = StringIO()
writer = csv.writer(s)
writer.writerow([1,2,3])
Copier après la connexion

Notez que la chaîne résultante contiendra toujours le terminateur de ligne Windows rn. Pour éviter cela, utilisez le paramètre newline='' lors de l'écriture de la chaîne dans un fichier.

  • Dans Python 2, ouvrez le fichier de sortie en mode binaire ("wb") au lieu du mode texte (" w'). Cela empêchera la traduction de terminaison de ligne.

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