web-dev-qa-db-fra.com

Nombre de lignes dans un fichier csv

Je fais probablement une erreur stupide, mais je ne trouve pas où c'est. Je veux compter le nombre de lignes dans mon fichier csv. J'ai écrit ceci et ne fonctionne évidemment pas: j'ai row_count = 0 alors qu'il devrait être de 400. A bientôt.

f = open(adresse,"r")
reader = csv.reader(f,delimiter = ",")
data = [l for l in reader]
row_count = sum(1 for row in reader)

print row_count
18
Dirty_Fox
with open(adresse,"r") as f:
    reader = csv.reader(f,delimiter = ",")
    data = list(reader)
    row_count = len(data)

Vous essayez de lire le fichier deux fois, lorsque le pointeur de fichier a déjà atteint la fin du fichier après avoir enregistré la liste data.

29
jamylak

Vous devez d'abord ouvrir le fichier avec open

input_file = open("nameOfFile.csv","r+")

Ensuite, utilisez le csv.reader pour ouvrir le csv

reader_file = csv.reader(input_file)

Enfin, vous pouvez prendre le nombre de lignes avec l'instruction 'len'

value = len(list(reader_file))

Le code total est le suivant:

input_file = open("nameOfFile.csv","r+")
reader_file = csv.reader(input_file)
value = len(list(reader_file))

N'oubliez pas que si vous souhaitez réutiliser le fichier csv, vous devez créer un fichier input_file.fseek (0), car lorsque vous utilisez une liste pour le fichier reader_file, il lit tous les fichiers et le pointeur du fichier change de position.

6
protti