Maison > développement back-end > Tutoriel Python > Comment puis-je accéder efficacement à une ligne spécifique dans un gros fichier texte ?

Comment puis-je accéder efficacement à une ligne spécifique dans un gros fichier texte ?

Patricia Arquette
Libérer: 2024-10-31 16:55:02
original
500 Les gens l'ont consulté

How can I efficiently jump to a specific line in a large text file?

Optimisation des sauts de ligne dans les fichiers texte volumineux : une approche alternative

Lors du traitement de fichiers texte volumineux comportant des lignes de longueurs variables, il est souvent inefficace de lire séquentiellement chaque ligne pour atteindre un numéro de ligne spécifique. L'exemple de code fourni dans la question illustre cette approche, nécessitant une itération potentiellement lente dans l'ensemble du fichier. Cependant, il existe une méthode alternative qui optimise le saut de ligne en exploitant une liste de décalages calculée.

Saut de ligne basé sur le décalage

Pour relever ce défi, une approche plus efficace implique de lire le fichier une fois pour créer une liste de décalages de lignes. Chaque décalage marque la position de départ d'une ligne particulière. En stockant ces décalages, vous pouvez accéder directement à une ligne souhaitée sans traiter les précédentes.

Voici un extrait de code amélioré :

<code class="python"># Read the file and build the line offset list
line_offset = []
offset = 0
with open(filename, "rb", 0) as file:
    for line in file:
        line_offset.append(offset)
        offset += len(line)

# Jump to a specific line (line 141978 in this example)
file.seek(line_offset[141977])  # Adjust the index as lines are zero-indexed

# Process the target line as desired
DoSomethingWithThisLine(line)</code>
Copier après la connexion

En utilisant la liste de décalages de ligne, vous pouvez ignorer directement à la ligne cible, réduisant considérablement le temps de traitement et améliorant l'efficacité.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal