🐍
Pythonで特定の文字列を含む行を抽出する
文字列の抽出くらいならテキストエディタでできるんですが、
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