import csv
with open('test.csv', 'rb') as f:
data = list(csv.reader(f))
import collections
counter = collections.defaultdict(int)
for row in data:
counter[row[1]] += 1
for row in data:
if counter[row[1]] >= 4:
writer = csv.writer(open("test1.csv", "wb"))
writer.writerows(row)
Je reçois une sortie étrange! Quel est le problème avec ce code?
Utilisez csv.writer
:
import csv
with open('thefile.csv', 'rb') as f:
data = list(csv.reader(f))
import collections
counter = collections.defaultdict(int)
for row in data:
counter[row[0]] += 1
writer = csv.writer(open("/path/to/my/csv/file", 'w'))
for row in data:
if counter[row[0]] >= 4:
writer.writerow(row)
Je sais que la question concerne l’implémentation de votre package "csv", mais pour votre information, il existe des options beaucoup plus simples, par exemple numpy.
import numpy as np
np.savetxt('data.csv', (col1_array, col2_array, col3_array), delimiter=',')
(Cette réponse a été postée 6 ans plus tard, pour l'amour de la postérité.)
Dans un cas différent, supposons que vous ayez deux colonnes comme ceci:
names = ['Player Name', 'Foo', 'Bar']
scores = ['Score', 250, 500]
Vous pourriez le sauvegarder comme ceci:
np.savetxt('scores.csv', [p for p in Zip(names, scores)], delimiter=',', fmt='%s')
scores.csv
ressemblerait à ceci:
Player Name,Score
Foo,250
Bar,500
Vous pouvez fermer les fichiers non csv.writer, cela devrait être:
f = open(fileName, "wb")
writer = csv.writer(f)
String[] entries = "first*second*third".split("*");
writer.writerows(entries)
f.close()
Un exemple simple serait quelque chose comme:
writer = csv.writer (open ("nomfichier.csv", "wb")) String [] entries = "premier # deuxième # troisième" .split ("#"); écrivain. writerows (entrées) writer.close ()
Voici comment je le fais
import csv
file = open('???.csv', 'r')
read = csv.reader(file)
for column in read:
file = open('???.csv', 'r')
read = csv.reader(file)
file.close()
file = open('????.csv', 'a', newline='')
write = csv.writer(file, delimiter = ",")
write.writerow((, ))
file.close()