4

私は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=")、何をどのように使用するのかわかりません。

質問: テキスト ファイルで単語 (完全一致ではない) を検索し、各行の特定の部分だけを出力するにはどうすればよいですか?

4

2 に答える 2

11

1 つの方法を次に示します。各行をスペースで分割し、各部分で「color=」を検索します。

with open("textfile.txt") as openfile:
    for line in openfile:
        for part in line.split():
            if "color=" in part:
                print part
于 2013-08-21T20:00:45.633 に答える