本質的には、ディレクトリ内の複数のファイルから行を読み込み、正規表現を使用して一種のタイムスタンプの始まりを見つけようとしています。また、正規表現内に月リストのインスタンスを配置し、それが何回出現するかに基づいて各月のカウンタ。私は以下のコードをいくつか持っていますが、それはまだ進行中の作業です。私はdate_parseをクローズしたことを知っていますが、それが私が求めている理由です。そして、より効率的な方法を考えることができるなら、別の提案を残してください。ありがとう。正規表現内のリストのメンバーのインスタンスをPythonでマッチさせることができますか?
months = ['Jan','Feb','Mar','Apr','May','Jun',\
'Jul','Aug','Sep','Oct','Nov',' Dec']
date_parse = re.compile('[Date:\s]+[[A-Za-z]{3},]+[[0-9]{1,2}\s]')
counter=0
for line in sys.stdin:
if data_parse.match(line):
for month in months in line:
print '%s %d' % (month, counter)
ありがとうございますsteveha、以前はdefaultdictのことは聞いたことがありません。私はこれがうまくいくと思う。 – Nightvein
btw、どのようにフォーマットを使用してdefaultdictオブジェクトを印刷しますか? – Nightvein
'defaultdict'は何かを見ようとすると自動的に追加されるという点を除いて、あらゆる点で普通の' dict'と同じように動作します。見つかった月のリストを印刷する場合は、他のdict: 'for month in c:print("%s:%d "%(月、しかし、それは月をランダムな順序で印刷します。lst_months = ['Jan'、 'Feb'、...、 'Dec' 'のような月のリストを作成してから、そのリストに数ヶ月、印刷したり、何でも印刷したりできます。 – steveha