如何在文本文件中搜索单词并使用Python打印部分行?


问题内容

我正在写一个Python脚本。我需要在文本文件中搜索一个单词,然后打印该行的一部分。我的问题是该单词在文本文件中将不完全匹配。

例如,在下面的文本文件示例中,我正在搜索单词"color="

文本文件,例如:

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",而不是整行。

结果文本文件,例如:

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="),但是我不确定是什么或如何使用。

问题 :如何在文本文件中搜索单词(不完全匹配),并且仅打印每行的特定部分?


问题答案:

这是一种方法-用空格分隔每行,然后在每个部分中搜索“ color =“:

with open("textfile.txt") as openfile:
    for line in openfile:
        for part in line.split():
            if "color=" in part:
                print part