Optimiser les 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 surmonter 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é :
# 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)
En utilisant la liste de décalage de ligne, vous pouvez passer directement à la ligne cible, réduisant considérablement le temps de traitement et améliorant l'efficacité.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3