Pythonで任意の表現を任意のディレクトリ内で一括検索

任意のディレクトリ内にあるtxtファイル全てを対象に任意の文字列を検索したい。
Terminal上で、grepすれば済む話だけど、検索したい文字列が大量にあって、個々の頻度も知りたい、、、と思ってスクリプトを書いた。

検索したい文字列を予め一行一表現で、txtファイルにまとめておいて、検索対象のディレクトリとは別に用意しておく。
結果は、タブ区切りでファイル名、文字列、頻度の順で出力。

以下、スクリプト

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys,os,re,glob

argvs = sys.argv
argc = len(argvs)

file_list = sorted(glob.glob(sys.argv[1] + '*.txt'))
with open(sys.argv[2] + ".txt", 'r') as DM:
	DMs = DM.read().splitlines()
	
fw = open(sys.argv[3] + ".txt", 'w')
fw.write("Filename" + "\t" + "DiscourseMarker" + "\t" + "Frequency" + "\n")

for filename in file_list:
	fn = filename.strip("files/"".txt")
	with open(filename,'r') as f:
		files = f.read()
		for DMss in DMs:
			fre = len(re.findall(r'(\b)' + DMss + r'(\b)', files, re.IGNORECASE))
			mydict = {}
			mydict[DMss] = fre
			for DMss in mydict:
				DMlist = DMss
				print(fn)
				print(mydict)
				fw.write(str(fn) + "\t" + str(DMlist) + "\t" + str(mydict[DMss]) + "\n")
fw.close()

もうちょっと簡単に書けそうな気もするが、、、動くからいいや。

もともとは、Discourse Markerのリストを作って、そのリスト内の表現の頻度をファイル別で知りたかった。
ので、出力の見出しもFilename、DiscourseMarkerとなっている。