-1
votes

Ligne de lecture de ligne par ligne mais commencez par un point

Je dois lire une ligne de fichier par ligne mais commencer à imprimer son concours après une correspondance. Supposons que la correspondance doit être xxx

de sorte que si nous avons un fichier avec le suivant xxx

il doit afficher DWDM et 111

J'ai essayé C'est la voie suivante. xxx

mais il n'imprime qu'une seule ligne. Comment forcer à imprimer le reste?


0 commentaires

3 Réponses :


1
votes

IT Impression de la ligne correspondante, qui est normale. Essayez quelque chose comme ça: xxx

Pourquoi préférer l'utilisation de avec à Ouvrez un fichier


3 commentaires

Remarque Ceci imprimera la ligne xxx qui n'était pas souhaitée dans la sortie de l'OP. Il utilise également re.search qui comme importation inutile pour une recherche trivial . Cela étant dit que nous avions tous les deux la même idée: P


Vous avez raison sur l'ordre des opérations, corrigé


Cependant, l'utilisation de re , même s'il semble trivial dans l'exemple, pourrait être nécessaire pour le cas d'utilisation réelle, par exemple si le fichier est un fichier journal avec dates ...



0
votes

1) N'utilisez pas Regex pour une recherche simple.
2) Ouvrez le fichier dans un avec code> instruction.
3) Créez simplement une variable booléenne pour vous indiquer quand vous voyez la ligne souhaitée:

with open('buffer.txt', 'r') as f:
    start_printing = False
    for line in f.readlines():
        if start_printing:
            print(line)
        elif 'XXX' in line:
            start_printing = True


0 commentaires

0
votes
file = open('buffer.txt', 'r')
found = False
for line in file:
    if not found:
        if re.search('XXX'. line):
              found = True
    else:
        print(line)

0 commentaires