Maison > Article > développement back-end > Comment passer efficacement à une ligne spécifique dans un fichier texte volumineux ?
Saut d'une ligne spécifique dans un fichier texte volumineux
Lorsque vous traitez des fichiers texte volumineux, il est courant de rencontrer le besoin de sauter directement à une ligne particulière. Une approche simple consiste à lire le fichier de manière itérative, mais cela peut s'avérer inefficace si vous connaissez le numéro de ligne cible à l'avance.
Le problème :
Utilisation de l'extrait de code fourni :
startFromLine = 141978 urlsfile = open(filename, "rb", 0) linesCounter = 1 for line in urlsfile: if linesCounter > startFromLine: DoSomethingWithThisLine(line) linesCounter += 1
Ce code lit le fichier ligne par ligne, nécessitant le traitement de toutes les lignes précédentes, même si elles ne sont pas pertinentes.
Une solution plus efficace :
Pour accéder efficacement à une ligne spécifique, vous pouvez utiliser une approche en deux étapes :
Créer une liste de compensations :
Rechercher la ligne cible :
Voici un exemple :
line_offset = [] offset = 0 for line in file: line_offset.append(offset) offset += len(line) file.seek(0) target_line = 141978 file.seek(line_offset[target_line])
Cette approche vous permet de passer directement à la ligne souhaitée, évitant ainsi la surcharge inutile liée au traitement des lignes non pertinentes.
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!