Pythonプログラミング入門・サンプル・チュートリアル

Pythonプログラミング入門・サンプル・チュートリアル

【Pythonプログラミング入門】「退屈なことはPythonにやらせよう」の演習。自己回答「8.10.3 正規表現検索」

はじめに

「退屈なことはPythonにやらせよう」の演習問題「8.10.3 正規表現検索」の自己回答です。

import re, os


# ユーザー入力を取得する
search_word = input('検索する文字列を入力してください\n')

# フォルダ内のファイルリスト取得
file_list = os.listdir('.')

# .txtファイルだけを抽出
txt_regex = re.compile(r'\w+\.txt')
txt_file_list = [f for f in file_list if txt_regex.search(f)]

# 指定した正規表現にマッチする行を検索する
search_word_regex = re.compile(search_word)
# ファイル名 行
result_list = []
for txt_file in txt_file_list:
    f = open(txt_file)
    line_list = f.readlines()
    f.close()

    for i, line in enumerate(line_list):
        if search_word_regex.search(line):
            print('ファイル名:{} 行番号:{}'.format(txt_file, i+1))

学習書籍