ほんじゃらねっと

ダイエット中プログラマのブログ

Pythonでgrep風にディレクトリ内のファイルを検索

大した機能ではないが、せっかくスクリプトを作ったので保存しておく。

せめて検索フォルダと検索文字列はコマンドオプションとして

渡せるようにしておくべきだったか。

pygrep.py

import os
import re

search_dir = "<検索対象フォルダパス>"
search_pattern = "<検索文字列>"

file_name_list = os.listdir(search_dir)
for file_name in file_name_list:
    f = open(os.path.join(search_dir, file_name))
    line = f.readline()
    line_number = 1
    while line:
        m = re.search(search_pattern, line)
        if m:
            print "Pattern Found: file:%s, line:%d, data:%s" % (file_name, line_number, line)
        line = f.readline()
        line_number = line_number + 1
    f.close()

追記

もう少しマシなコードはこちら:

blog.honjala.net