Python テキストファイル内を指定文字列で検索して、その行を抽出する

 例題として、下図のようなテキストファイルがあります。例えば、文字列LOG_DATAのある行を抽出したいとします。ここでは2箇所あります。

 本プログラムを実行すると、下図のように、LOG_DATAのある行を2箇所抽出してcsvファイルとして書き出す雛形コードを載せました。

■本プログラム

正規表現の標準モジュール「re」を使用します。

import re

# 検索対象のファイルパス
target_file = 'target_file.txt'
# 検索キーワード
target_str = 'LOG_DATA'
# 保存するファイルパス
save_file_path = 'log_data.csv'

# 空のリストを作成する。ここに検索して抽出した文字列を格納する
data_list = []
# ファイルから指定した文字列のある行を抽出する
with open(target_file, 'r', encoding = 'Shift-JIS') as f:
    for row in f:
        if re.match(target_str, row):
            row = row.replace(' ', ',')
            data_list.append(row)
            
# 抽出した文字列を新しいファイルへ書き出す
with open(save_file_path, 'w') as f:
    f.writelines(data_list)

以上

<広告>