9
votes

Espace vide entre les lignes après avoir utilisé un écrivain à Python

J'utilise le package CSV maintenant, et chaque fois que lorsque j'écris à un nouveau fichier CSV et que l'Ouvrez-le avec Excel, je trouverai une ligne vide entre deux rangées.

filereader = csv.reader(open("tests.csv", "r"), delimiter=",")
filewriter = csv.writer(open("test_step1.csv", "w"), delimiter=",")
#Delete header
for row in filereader:
    if row[0].isdigit():
        filewriter.writerow(row)


3 commentaires

Ouvrez le fichier écrivain dans WB . C'est à cause du \ r \ n


J'ai essayé, mais j'ai une autre erreur: "" str 'ne prend pas en charge l'interface tampon "


Ouvrir les deux en mode binaire. rb et wb Vous pouvez lire une chaîne et écrire binaire le même jeu de données


3 Réponses :


6
votes

Vous devez ouvrir le fichier en mode WB Essayez:

import csv

filereader = csv.reader(open("tests.csv", "r"), delimiter=",")
filewriter = csv.writer(open("test_step1.csv", "wb"), delimiter=",", newline="")
#Delete header
for row in filereader:
    if row[0].isdigit():
        filewriter.writerow(row)


4 commentaires

Cela me donne l'erreur "" str 'ne prend pas en charge l'interface tampon "de la dernière ligne de code.


Quelle version de Python? Êtes-vous sur Windows?


J'ai compris! Merci quand même pour vôtre aide. Vous devez écrire Open ("", "W", Newline = '') à la place! Stackoverflow.com/Questtions/7200606/python3-witing-csv-file s


C'est génial, je suis allé au pub que je vais mettre à jour ma réponse afin que vous puissiez accepter si vous voulez



1
votes

J'utilise python 3.6 et il semble que

csv.writer (Open ("Test_step1.csv", "WB"), Delimiter = ",", ", newline =" ")

n'est pas correct. Plutôt, newline = "" devrait être ajouté dans la clause ouverte () .


0 commentaires

0
votes

Veuillez noter que CSV 1.0 sous Windows (nécessite '\ n') et Mac OS (facultatif). Le code ci-dessous produira le fichier .csv sans espaces entre la ligne suivante. Cela fonctionne dans Mac et Windows. xxx


0 commentaires