今日の日付、定数単語、単語の後の最初の数字など、特定の文字列を持つすべての項目に一致するログファイルを読み込むスクリプトを作成しようとしています。私はPythonにはかなり新しく、いくつかの問題があります。各正規表現一致 ための1つの変数を有することなく、正規表現を使用して、異なるグループと一致する方法regexで正規表現を使用してメールを一致させてメールを送信する
- (VAR1 =
date
+word
+7
-somehting、VAR2 =date
+word
+9
-somethingを、など) など、他の言葉で接尾グループによってマッチを印刷する方法
- :
グループ1
Geneva:
2017-11-14: Word: 7712742 (1346134)
グループ2
Helsinki:
2017-11-02: Word: 9124741 (912478)
私は、電子メールにこれらの一致とそのサフィックスのすべてを書きたいと思います。私はこれに取り組むことを試みた 現在の方法は次のとおりです。
import time
import re
import glob
logpath = glob.glob('C:\\path\\to\\file*.log')[0]
readfile = open(logpath, "r")
daysdate = time.strftime("%Y-%m-%d")
regex = re.compile(daysdate + ".*[Word:] \d.+")
for line in readfile:
req_id = regex.findall(line)
for word in req_id:
#this print shows all regex matches from the log file
print(req_id,)
...
mail.Body += "%s\n" % word
mail.Send()
は今、これは今日の日付のすべて試合を出力し、目的のユーザー(複数可)にメールを送信しますが、私は見つけることがまだいます上記のようにして、いくつかのファイルを作成して書き込むのではなく、いくつかのファイルから読み込みます。これは非常に非Pythonの方法(と全体的なスクリプトの悪い練習)のように感じる。
は1は、このような日がdate
+ word
+ 7
-something、print("Geneva:\n", req_id7)
で各試合のために、この使用していくつかのループ、取り掛かるたいだろうか、これを解決するために、他の、より良い方法はありますか?そのような例の出力は得られます。
Geneva: ['2017-11-15 04.03.18: Word: 78271187 (783342)']
Geneva: ['2017-11-15 04.03.19: Word: 75612345 (755491)']
Geneva: ['2017-11-15 04.03.22: Word: 70145678 (798640)']
Iが出力になりたい
:
Geneva:
['2017-11-15 04.03.18: Word: 78271187 (783342)']
['2017-11-15 04.03.19: Word: 75612345 (755491)']
['2017-11-15 04.03.22: Word: 70145678 (798640)']