59 votes

Obtenir le numéro de ligne d'une certaine phrase dans le fichier Python

J'ai besoin d'obtenir le numéro de ligne d'une phrase dans un fichier texte. La phrase pourrait être :

 the dog barked

Je dois ouvrir le fichier, rechercher cette phrase et imprimer le numéro de ligne.

J'utilise Python 2.6 sur Windows XP


C'est ce que j'ai :

 o = open("C:/file.txt")
j = o.read()
if "the dog barked" in j:
     print "Found It"
else:
     print "Couldn't Find It"

Ce ne sont pas des devoirs, cela fait partie d'un projet sur lequel je travaille. Je ne sais même pas comment obtenir le numéro de ligne.

116voto

Sacha Points 1059
lookup = 'the dog barked'

with open(filename) as myFile:
    for num, line in enumerate(myFile, 1):
        if lookup in line:
            print 'found at line:', num

5voto

suzanshakya Points 709
def get_line_number(phrase, file_name):
    with open(file_name) as f:
        for i, line in enumerate(f, 1):
            if phrase in line:
                return i

3voto

suzanshakya , je suis en train de modifier votre code, je pense que cela simplifiera le code, mais assurez-vous avant d'exécuter le code que le fichier doit être dans le même répertoire de la console sinon vous obtiendrez une erreur.

 lookup="The_String_You're_Searching"
file_name = open("file.txt")
for num, line in enumerate(file_name,1):
        if lookup in line:
            print(num)

1voto

uʍop ǝpısdn Points 16540

Ouvrez votre fichier, puis faites quelque chose comme...

 for line in f:
    nlines += 1
    if (line.find(phrase) >= 0):
        print "Its here.", nlines

Il existe de nombreuses façons de lire des lignes à partir de fichiers en Python, mais la for line in f est plus efficace que la plupart.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X