J'essaie d'écrire dans un fichier CSV, mais il y a des lignes vides entre les deux. Comment puis-je supprimer les lignes vides?
import csv
b = open('test.csv', 'w')
a = csv.writer(b)
data = [['Me', 'You'],\
['293', '219'],\
['54', '13']]
a.writerows(data)
b.close()
La façon dont vous utilisez le module csv
a changé dans Python 3 à plusieurs égards (docs) , du moins en ce qui concerne la manière dont vous devez ouvrir le fichier. Quoi qu'il en soit, quelque chose comme
import csv
with open('test.csv', 'w', newline='') as fp:
a = csv.writer(fp, delimiter=',')
data = [['Me', 'You'],
['293', '219'],
['54', '13']]
a.writerows(data)
devrait marcher.
Si vous utilisez Python 2.x sous Windows, vous devez modifier votre ligne open('test.csv', 'w')
en open('test.csv', 'wb')
. C'est-à-dire que vous devriez ouvrir le fichier en tant que fichier binaire .
Cependant, comme indiqué par d'autres, l'interface de fichier a été modifiée dans Python 3.x.
import csv
hello = [['Me','You'],['293', '219'],['13','15']]
length = len(hello[0])
with open('test1.csv', 'wb') as testfile:
csv_writer = csv.writer(testfile)
for y in range(length):
csv_writer.writerow([x[y] for x in hello])
produira une sortie comme celle-ci
Me You
293 219
13 15
J'espère que cela t'aides
Vous devez ouvrir le fichier en mode binaire b
pour prendre soin des lignes vides dans Python 2. Cela n'est pas obligatoire dans Python 3.
Donc, changez open('test.csv', 'w')
en open('test.csv', 'wb')
.
Pyexcel fonctionne parfaitement avec Python2 et Python3 sans problèmes.
Installation rapide avec pip:
pip install pyexcel
Après cela, seulement 3 lignes de code et le travail est terminé:
import pyexcel
data = [['Me', 'You'], ['293', '219'], ['54', '13']]
pyexcel.save_as(array = data, dest_file_name = 'csv_file_name.csv')