Le traitement de texte de Python est un problème souvent rencontré L'article suivant vous présente principalement la comparaison de plusieurs méthodes différentes de Python lecture de fichiers Des informations, des exemples de codes détaillés sont. donné dans l'article pour que tout le monde puisse comprendre et apprendre. Les amis qui en ont besoin peuvent y jeter un œil ci-dessous.
Préface
Tout le monde sait que Python a de nombreuses façons de lire des fichiers, mais lorsque vous avez besoin de lire un fichier volumineux, différentes méthodes de lecture le feront ont des effets différents. Jetons un coup d’œil à l’introduction détaillée ci-dessous.
Scénario
Lire un gros fichier de 2,9 Go ligne par ligne
CPU i7 6820HQ
RAM 32G
Méthode
Diviser la lecture de chaque ligne une foisStringOpération
Les méthodes suivantes utilisent toutes la méthode with...as pour ouvrir le fichier.
L'instruction with est adaptée pour accéder aux ressources afin de garantir que, indépendamment du fait qu'une exception se produise lors de l'utilisation, les opérations de "nettoyage" nécessaires seront effectuées pour libérer les ressources, telles que la fermeture automatique des fichiers après utilisation et l'acquisition automatique. des verrous dans les fils et la libération, etc.
Méthode 1 : la méthode la plus courante pour lire des fichiers
with open(file, 'r') as fh: for line in fh.readlines(): line.split("|")
Résultat d'exécution : cela a pris 15,4346568584 secondes
Le moniteur système montre que la mémoire est soudainement passée de 4,8G à 8,4G. fh.readlines() enregistrera toutes les données de ligne lues dans la mémoire. Cette méthode convient aux petits fichiers.
Méthode 2
with open(file, 'r') as fh: line = fh.readline() while line: line.split("|")
Résultat d'exécution : cela a pris 22,3531990051 secondes
Il n'y a presque aucun changement en mémoire. Parce qu'une seule ligne de données est accédée dans la mémoire, mais le temps est évidemment plus long que le temps précédent, ce qui n'est pas efficace pour le traitement ultérieur des données.
Méthode 3
with open(file) as fh: for line in fh: line.split("|")
Résultat d'exécution : cela a pris 13,9956979752 secondes
Il n'y a presque aucun changement en mémoire. La vitesse est également plus rapide que la deuxième méthode.
for line in fh traite le fichier objet fh comme un itérable, qui utilise automatiquement les E/S mises en mémoire tampon et la gestion de la mémoire afin que vous n'ayez pas à vous soucier des fichiers volumineux. C'est une manière très pythonique !
Module d'entrée de fichier de la méthode 4
for line in fileinput.input(file): line.split("|")
Résultat d'exécution : cela a pris 26,1103110313 secondes
Mémoire augmentée de 200 -300 Mo, la vitesse la plus lente ci-dessus.
Résumé
Les méthodes ci-dessus sont à titre de référence uniquement. Les trois méthodes reconnues pour lire des fichiers volumineux sont toujours les meilleures. Cependant, la situation spécifique dépend toujours des performances de la machine et de la complexité du traitement des données.
[Recommandations associées]
1. Exemple de code de n lignes après que Python ait lu le fichier
2 Utilisez Python pour lire le fichier. fichier Mini Programme
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!