python - Lit le fichier depuis et vers des lignes de texte spécifiques
Je ne parle pas des numéros de ligne spécifiques parce que je suis en train de lire plusieurs fichiers avec le même format, mais varient en longueur.
Dire que j'ai ce fichier texte:
Something here...
... ... ...
Start #I want this block of text
a b c d e f g
h i j k l m n
End #until this line of the file
something here...
... ... ...
J'espère que vous savez ce que je veux dire. je pensais à itérer le fichier puis recherche en utilisant l'expression régulière pour trouver le numéro de la ligne de "Début" et "Fin", puis utiliser linecache à lire à partir de la ligne de Départ à la Fin de ligne.
Mais comment obtenir le numéro de la ligne? quelle fonction dois-je utiliser?
source d'informationauteur BPm
Vous devez vous connecter pour publier un commentaire.
Si vous voulez simplement le bloc de texte entre
Start
etEnd
vous pouvez faire quelque chose de simple comme:En fait, vous n'avez pas besoin de manipuler les numéros de ligne de commande pour lire les données entre le Début et la Fin des marqueurs.
La logique ("lire jusqu'à ce que...") est répété dans les deux blocs, mais il est tout à fait clair et efficace (d'autres méthodes impliquent généralement la vérification de l'état [avant de block/block/fin de bloc atteint], qui encourt une pénalité de temps).
Voici quelque chose qui va travailler:
Vous pouvez utiliser une regex assez facilement. Vous pouvez la rendre plus robuste que nécessaire, ci-dessous est un exemple simple.
Cela devrait être un début pour vous:
La
enumerate
générateur prend un générateur et énumère les itérations.Par exemple.
imprime
Mise à JOUR:
l'affiche demandé l'aide d'une expression régulière pour rechercher des lignes comme "===" et "======":