Obtenir le nombre de lignes d'un fichier en Python

Syed Moiz Haider 30 janvier 2023
  1. Obtenir le nombre de lignes d’un fichier en Python en utilisant les fonctions open() et sum()
  2. Obtenir le nombre de lignes dans un fichier en Python en utilisant la méthode mmap.mmap()
  3. Obtenir le nombre de lignes d’un fichier en Python en utilisant la méthode file.read()
Obtenir le nombre de lignes d'un fichier en Python

Ce tutoriel présente différentes méthodes pour obtenir le nombre total de lignes dans un fichier en Python. Pour obtenir le nombre total de lignes d’un fichier, nous devons d’abord lire les données du fichier dans une mémoire tampon, et nous pouvons le faire soit en chargeant le fichier complet en une fois, soit en lisant les données par petits morceaux si la taille du fichier est importante.

Nous allons voir comment nous pouvons mettre en œuvre les deux approches en utilisant différentes méthodes en Python, qui sont expliquées ci-dessous avec des exemples de code :

Obtenir le nombre de lignes d’un fichier en Python en utilisant les fonctions open() et sum()

Un moyen simple d’obtenir le nombre de lignes d’un fichier est d’itérer chaque ligne de l’objet fichier renvoyé par la fonction open().

La fonction open(file, mode) prend file en entrée et renvoie un objet fichier en sortie. Un file est un objet de type chemin qui peut être une chaîne de caractères ou des octets et qui contient le chemin du fichier. Le mode représente le mode dans lequel nous voulons ouvrir le fichier, comme lire, écrire, ajouter le mode, etc.

L’exemple de code ci-dessous montre comment utiliser la boucle for pour obtenir le nombre de lignes d’un fichier en Python.

with open("myFolder/myfile.txt") as myfile:
    total_lines = sum(1 for line in myfile)

print(total_lines)

Obtenir le nombre de lignes dans un fichier en Python en utilisant la méthode mmap.mmap()

La méthode mmap.mmap(fileno, length) fait correspondre length au nombre d’octets du fichier spécifié par le fileno et renvoie un objet mmap. Si la valeur de length est 0, la longueur maximale de la carte sera égale à la taille du fichier.

Nous pouvons utiliser l’objet mmap renvoyé par la méthode mmap.mmap() et ensuite utiliser la méthode mm.readline() pour accéder aux lignes jusqu’à la fin du fichier. Comme nous voulons charger le fichier complet, nous passerons 0 comme argument length.

Exemple de code :

import mmap

with open("myFolder/myfile.txt", "r+") as myfile:
    mm = mmap.mmap(myfile.fileno(), 0)
    total_lines = 0

    while mm.readline():
        total_lines += 1

print(total_lines)

Obtenir le nombre de lignes d’un fichier en Python en utilisant la méthode file.read()

Si la taille du fichier est énorme et que nous avons besoin d’un moyen rapide de lire le fichier en petits morceaux, nous pouvons utiliser la méthode file.read() pour lire les données sous forme de tableau d’octets dans un tampon de la taille spécifiée.

L’exemple de code ci-dessous montre comment lire les données du fichier dans une mémoire tampon en utilisant la méthode file.read() et ensuite les itérer pour obtenir le nombre de lignes :

lines = 0
size = 1024 * 1024

with open(r"C:\test\file.txt", "r+") as myfile:
    read_file = myfile.read

    buffer = read_file(size)

    while buffer:
        lines += buffer.count("\n")
        buffer = read_file(size)

if lines != 0:
    lines += 1

print(lines)
Syed Moiz Haider avatar Syed Moiz Haider avatar

Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.

LinkedIn

Article connexe - Python File