Maison >développement back-end >Tutoriel Python >Comment Python peut-il compter efficacement les lignes dans de très gros fichiers ?

Comment Python peut-il compter efficacement les lignes dans de très gros fichiers ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-14 01:07:11864parcourir

How Can Python Efficiently Count Lines in Very Large Files?

Comptage de lignes efficace dans les fichiers volumineux avec Python

La détermination du nombre de lignes de fichiers volumineux est cruciale pour diverses applications. Alors que les approches conventionnelles utilisant des boucles for peuvent prendre du temps et consommer beaucoup de mémoire, Python propose une solution optimisée.

Comptage de lignes concis et efficace

L'extrait de code suivant présente une approche sur une seule ligne pour comptage de lignes, surpassant la méthode de boucle présentée dans la question :

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

Ce code exploite l'expression génératrice de Python, qui itère sur chaque ligne du fichier, sans conserver toutes les lignes en mémoire. La construction sum(1 for _ in ...) compte le nombre de lignes.

Améliorations des performances

Pour une optimisation supplémentaire de la vitesse et une robustesse accrue, envisagez les améliorations suivantes :

  • Lecture en mode binaire : Le mode rb assure une lecture efficace des données binaires du fichier.
  • Utiliser un bloc with : Le bloc with ferme automatiquement le descripteur de fichier, garantissant ainsi un nettoyage approprié.

Un extrait de code mis à jour avec ces améliorations :

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

Remarque

Pour le mode rbU obsolète dans Python 3.3 et plus tard, utilisez plutôt rb. Ce mode est supprimé dans Python 3.11.

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