Sauter efficace vers une ligne spécifique dans des fichiers texte volumineux
Lors du traitement de fichiers texte volumineux avec des longueurs de ligne inconnues, passer à une ligne particulière sans parcourir l’intégralité du fichier peut améliorer considérablement l’efficacité. L'approche courante mise en évidence dans la question est itérative, mais ce n'est pas la solution la plus optimale.
Une alternative plus élégante et plus efficace consiste à identifier le décalage d'octet de départ de chaque ligne lors d'une passe de prétraitement. Cela peut être accompli en créant une liste de décalages comme suit :
<code class="python">line_offset = [] offset = 0 for line in file: line_offset.append(offset) offset += len(line)</code>
Une fois cette liste prétraitée construite, passer à une ligne spécifique devient trivial :
<code class="python">file.seek(line_offset[n])</code>
où n est le index de la ligne souhaitée (la première ligne étant la ligne 0). Cette technique permet une navigation directe vers n'importe quelle ligne sans analyser l'intégralité du fichier, ce qui réduit considérablement le temps de traitement pour les grands ensembles de données.
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!