Reputation: 3
Hi i want to read and display strB's line number which is a common string and follows immediately in file after reading string A through string A's line number
i am a common line
i am a common line
i am a common line
i am a common line
defghijklt
I am a unique line
jaslkdjaldjsadsajdlakjdasldj
spjpsijgpigjpijgjfdpgfdpgjdppdfjgdpfpi
jspijdfpgfdjgfdijgdfpjgdfpijgdfijfdoifdjpi
jgdfjfdpijfdpijgdgdjfdfjgidjgfdoijdfojgdfoijfdoo
jgdfoijfdijfdoifdjgfdoijgfdoijfdojfdoijfdojfdoifjdogfdjoi
i am a common line
i am a common line
ueowueoodsjpdogfdpofdpofdpdfigdpgdifgdifdiikpkpjfdspjf
this is my code :
strB = 'i am common line'
strA = 'I am a unique line'
input_file = open('mynewfile.txt', 'r')
with input_file as myFile:
for num, line in enumerate(myFile):
if strA in line:
print num
for num in range (num, num+12):
if strB in line:
print num
please suggest what should I do?
Upvotes: 0
Views: 79
Reputation: 1121256
Just set a flag:
input_file = open('mynewfile.txt', 'r')
with input_file as myFile:
foundA = False
for num, line in enumerate(myFile):
if strA in line:
foundA = True
print num
# Only look for `strB` if `strA` has been seen first
if foundA and strB in line:
print num
break # stop reading the file.
Alternatively, nest the loops, to search for each strB
-after-strA
event:
input_file = open('mynewfile.txt', 'r')
with input_file as myFile:
enumerated = enumerate(myFile):
for num, line in enumerated:
if strA in line:
print num
for num, line in enumerated:
if strB in line:
print num
break # search for next strA
Upvotes: 1