Maison >développement back-end >Tutoriel Python >Comment puis-je compter efficacement et avec précision les lignes dans un fichier volumineux à l'aide de Python ?

Comment puis-je compter efficacement et avec précision les lignes dans un fichier volumineux à l'aide de Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-10 04:38:21662parcourir

How Can I Efficiently and Accurately Count Lines in a Large File Using Python?

Optimisation du comptage de lignes en Python : atteindre précision et efficacité

Le comptage efficace du nombre de lignes dans des fichiers volumineux nécessite à la fois une optimisation de la mémoire et une efficacité en termes de temps. Une technique courante consiste à utiliser une boucle for, mais cela peut avoir un impact sur la consommation de mémoire.

Une approche plus efficace est l'utilisation d'une seule ligne :

num_lines = sum(1 for _ in open('myfile.txt'))

Cette compréhension compte les lignes du fichier par en itérant dessus et en utilisant la valeur 1 comme compteur. Cependant, pour encore plus de vitesse et de robustesse, une modification peut être apportée :

with open("myfile.txt", "rbU") as f:
    num_lines = sum(1 for _ in f)

L'utilisation du mode rbU améliore la vitesse, mais il est obsolète dans Python 3.3 et supérieur. Il est donc recommandé d’utiliser rb à la place. Dans Python 3.11, l'indicateur U a été supprimé.

N'oubliez pas que ces solutions sont conçues pour économiser la mémoire tout en conservant un nombre de lignes précis. Le choix de la technique dépend des exigences spécifiques et des considérations de performances.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn