I'm writing code that looks in a text file, and sees if the input is in there.
E.g.,
I input "pizza"
My textfile contains:
bread
pizza
pasta
tomato
Is there a way to print the line number the word pizza is on?
with open('test.txt') as f:
content = f.readlines()
index = [x for x in range(len(content)) if 'pizza' in content[x].lower()]
Part (1) of the code reads each line as a separate list in variable "content".
Part (2) populates out the line # of content only if 'pizza' exists in that line. [x for x in range(len(content))] simply populates all index values, while 'if 'pizza' in content[x].lower()' keeps the line # that matches the string.
There are two ways of accomplishing this:
For method 1, first read in every line and then get the index that the word is on:
with open('path.txt') as f: data = f.readlines()
line_no = data.index("pizza")
Alternatively, go through the file to find the index:
with open('path.txt') as f:
for line_no, line in enumerate(f):
if line == "pizza":
break
else: # for loop ended => line not found
line_no = -1
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With