我正在写一个Python脚本。我需要在文本文件中搜索单词,然后打印该行的一部分。我的问题是这个词在文本文件中不会完全匹配。
例如,在下面的文本文件示例中,我正在搜索单词"color="
。
文本文件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
如果找到它,它应该打印到新的文本文件"color=color"
,而不是整行。
结果文本文件ex:
color=red
color=green
color=yellow
我的代码:
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)
我认为我需要使用正则表达式或line.find("color=")
之类的东西,但我不确定是什么或如何。
问题:如何在文本文件中搜索单词(不是完全匹配)并且只打印每行的特定部分?
答案 0 :(得分:5)
这是一种方法 - 用空格分割每一行,然后在每个部分搜索“color =”:
with open("textfile.txt") as openfile:
for line in openfile:
for part in line.split():
if "color=" in part:
print part
答案 1 :(得分:2)
嗯,它可能不是很多,但你总是可以使用正则表达式:
m = re.search(r'(color\=.+?(?= )|color\=.+?$)', line)
if m:
text = m.group() # Matched text here