I'm writing a Python script. I need to search a text file for a word and then print part of that line. My problem is that the word will not be an exact match in the text file.
For example, in the below text file example, I'm searching for the word "color="
.
Text File ex:
ip=10.1.1.1 color=red house=big
ip=10.1.1.2 color=green house=small
ip=10.1.1.3 animal = dog house=beach
ip=10.1.1.4 color=yellow house=motorhome
If it finds it, it should print to a new text file "color=color"
, not the whole line.
Result Text File ex:
color=red
color=green
color=yellow
My code:
for line_1 in open(file_1):
with open(line_1+'.txt', 'a') as my_file:
for line_2 in open(file_2):
line_2_split = line_2.split(' ')
if "word" in line_2:
if "word 2" in line_2:
for part in line_2:
line_part = line_2.split(): #AttributeError: 'list' object has no attribute 'split'
if "color=" in line_part():
print(line_part)
I believe I need to use regular expressions or something like line.find("color=")
, but I'm not sure what or how.
Question: How do I search a text file for a word (not an exact match) and the print only a specific part of each line?
Here's one way - split each line by spaces, then search each part for "color=":
with open("textfile.txt") as openfile:
for line in openfile:
for part in line.split():
if "color=" in part:
print part
Well, it may not be much, but you could always use regex:
m = re.search(r'(color\=.+?(?= )|color\=.+?$)', line)
if m:
text = m.group() # Matched text here
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