slt
comment faire pour imprimer les 4 lignes qui suis celle ou ce trouve ton résulta
par ex ci je cherche "Coach" dans le fichier 1.txt qui contienne :
Football Coach
We are not what we should be
We are not what we need to be
But at least we are not what we used to be
qsfqsfsqfq
qsfsqfsqfqs
qsfqsfqsfqsfq
et imprimer sur l’écran les 3 ligne qui suis cette la ligne ou ce trouve Coach
pour trouvé le résulta en fait:
f = open("1.txt", 'rU')
for line in f:
match = re.search(r"Coach", line)
if match:
print line
f.close()
Le plus simple sur des petits fichiers est de récupérer dans une liste toutes les lignes et de travailler sur cette liste.
def getline(fic, word):
with open(fic, 'r') as f:
lines = [line.strip() for line in f.readlines()]
for index, line in enumerate(lines):
if word in line:
index += 1
return lines[index:index+3]
for line in getline('test.txt', 'Coach'):
print line
# We are not what we should be
# We are not what we need to be
# But at least we are not what we used to be
Edit :
Citation : S@MY-H4CK3R
f = open("1.txt", 'rU')
for line in f:
match = re.search(r"Coach", line)
if match:
print line
f.close()
Ton code ne retournera pas les 3 prochaines lignes comme tu le demandes
Le plus simple sur des petits fichiers est de récupérer dans une liste toutes les lignes et de travailler sur cette liste.
def getline(fic, word):
with open(fic, 'r') as f:
lines = [line.strip() for line in f.readlines()]
for index, line in enumerate(lines):
if word in line:
index += 1
return lines[index:index+3]
for line in getline('test.txt', 'Coach'):
print line
# We are not what we should be
# We are not what we need to be
# But at least we are not what we used to be
Edit :
Citation : S@MY-H4CK3R
f = open("1.txt", 'rU')
for line in f:
match = re.search(r"Coach", line)
if match:
print line
f.close()
Ton code ne retournera pas les 3 prochaines lignes comme tu le demandes
merci bcp pour d'avoir mentionné le fait de récupérer dans une liste toutes les lignes et de travailler sur cette liste.
j'ai finie avec ce code
f = open(filename, 'rU')
i = 0
content = []
for line in f.readlines():
content.append(line)
for l in content:
match = re.search(r"Coach", l)
if match:
resulta = content[i:3]
for x in xrange(0,3):
print " ➤" + resulta[x].strip()
i+=1
f.close()
<citation>f = open(filename, 'rU')
i = 0
content = []
for line in f.readlines():
content.append(line)
for l in content:
match = re.search(r"Coach", l)
if match:
resulta = content[i:3]
for x in xrange(0,3):
print " ➤" + resulta[x].strip()
i+=1
f.close()
</citation>
Malgré toutes les erreurs PEP8, indentation, etc..., ça retourne que les 2 lignes suivantes et non les 3.
with open("1.txt", 'rU') as f:
contenu = f.readlines()
for i,line in enumerate(contenu):
if re.search(r"Coach", line):
print ''.join(contenu[i+1:min(i+4,len(contenu))])
<citation>f = open(filename, 'rU')
i = 0
content = []
for line in f.readlines():
content.append(line)
for l in content:
match = re.search(r"Coach", l)
if match:
resulta = content[i:3]
for x in xrange(0,3):
print " ➤" + resulta[x].strip()
i+=1
f.close()
</citation>
Malgré toutes les erreurs PEP8, indentation, etc..., ça retourne que les 2 lignes suivantes et non les 3.
oui je l'est testé pour les erreurs indentation ces parce que je l'est copier/coller de mon éditeur si non dans mon code sa marche très bien et merci encore de ton aide fred1599 et pour les RegEx je les utilise par ce que dans mon code je cherche quelque chose de spécifique(ces pas Coach lol) et fichier texte n'est le 1.txt que je donner comme ex pour simplifier la tache a ce lui qui va m'aider
Je viens de faire un test sur une chaîne aléatoire d'un million de caractères, la différence est à peine sensible.
Bizarre: en faisant le test de recherche sur un fichier texte de 34 Mo j'ai quand même une différence assez nette: 2,5 fois plus rapide pour "find" par rapport à "re.search" (python 2.7.2)
Je viens de faire un test sur une chaîne aléatoire d'un million de caractères, la différence est à peine sensible.
Bizarre: en faisant le test de recherche sur un fichier texte de 34 Mo j'ai quand même une différence assez nette: 2,5 fois plus rapide pour "find" par rapport à "re.search" (python 2.7.2)
C'est fort possible puisque 1 million de caractères c'est juste 1 Mo et que toi tu as une chaîne de 34 Mo. Mais il est concevable qu'utiliser ici les expressions régulières sera plus lent (mais j'aurais pensé bien plus lent encore).
Mais il est concevable qu'utiliser ici les expressions régulières sera plus lent (mais j'aurais pensé bien plus lent encore).
Tout à fait.
Après, ça dépend peut-être de ce que S@MY-H4CK3R veut faire comme recherche "spécifique" dans son fichier.
Regular Expression
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Python c'est bon, mangez-en.