🐍

Pythonで特定の文字列を含む行を抽出する

2022/04/07に公開

文字列の抽出くらいならテキストエディタでできるんですが、
Python練習用に作成してみました。

完成版


# 入出力のパス
input_path = './test.log'
output_path = './result.txt'

# Grep検索対象
grep_target1 = 'Exception'
# grep_target2 = 'システムエラー'

# ファイル読み込みとGrep
with open(input_path, mode='r', encoding='utf-8') as f:
    lines = f.readlines()
    # 指定した文字列を含む行を取得
    GREP_TARGET = [line for line in lines if grep_target1 in line]
    # 指定した文字列を含まない行を取得
    # GREP_TARGET = [line for line in lines if grep_target1 not in line]
    # and/orで条件追加できる
    # GREP_TARGET = [line for line in lines if grep_target1 in line or grep_target2 in line]

# ファイル出力
with open(output_path, mode='w', encoding='utf-8') as f:
    f.writelines(GREP_TARGET)

大容量ログファイルであれば、こちらの方が早いのでたまに使ってます。

Discussion