172 votes

Comment obtenir le nombre total de lignes d'un fichier CSV en Python ?

J'utilise python (Django Framework) pour lire un fichier CSV. Je ne tire que 2 lignes de ce CSV comme vous pouvez le voir. Ce que j'ai essayé de faire est de stocker dans une variable le nombre total de lignes du CSV.

Comment puis-je obtenir le nombre total de lignes ?

file = object.myfilePath
fileObject = csv.reader(file)
for i in range(2):
    data.append(fileObject.next()) 

J'ai essayé :

len(fileObject)
fileObject.length

10voto

protti Points 271

Vous devez d'abord ouvrir le fichier avec open

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

Ensuite, utilisez le lecteur 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))

Rappelez-vous que si vous voulez réutiliser le fichier csv, vous devez faire un input_file.fseek(0), car lorsque vous utilisez une liste pour le reader_file, il lit tous les fichiers, et le pointeur dans le fichier change de position.

6voto

Mithilesh Gupta Points 2087

row_count = sum(1 for line in open(filename)) a fonctionné pour moi.

Note : sum(1 for line in csv.reader(filename)) semble calculer la longueur de la première ligne

4voto

Amir Points 49

Cela fonctionne pour csv et tous les fichiers contenant des chaînes de caractères dans les systèmes d'exploitation basés sur Unix :

import os

numOfLines = int(os.popen('wc -l < file.csv').read()[:-1])

Dans le cas où le fichier csv contient une ligne de champs, vous pouvez en déduire un à partir de numOfLines ci-dessus :

numOfLines = numOfLines - 1

4voto

David Martínez Points 39

Je pense que nous pouvons améliorer un peu la meilleure réponse, j'utilise :

len = sum(1 for _ in reader)

De plus, il ne faut pas oublier que le code pythonique n'a pas toujours les meilleures performances du projet. Par exemple : Si nous pouvons faire plus d'opérations en même temps dans le même ensemble de données, il est préférable de les faire toutes dans le même bucle au lieu de faire deux bucles pythoniques ou plus.

3voto

Alex Troush Points 552
numline = len(file_read.readlines())

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X