以下のログの中から、 - - - の部分を無視するように正規表現で検索を行っていますが、
以下の書き方で合っていますでしょうか? その他、修正した方が良い正規表現箇所がありましたらアドバイスください。
よろしくお願い致します。
if re.match(r"^-*$", line):
python
1import re 2 3file_name = "iperf-result.log" 4time_stamp = "" 5 6with open(file_name, "r", encoding='shift_jis') as f: 7 lines = f.readlines() 8 9for line in lines: 10 if re.match(r"^\s*$", line): # 空白行無視 11 continue 12 if re.match(r"^Connecting", line): # 先頭がConnectingで始まる場合は無視 13 continue 14 if re.search(r"local.*", line): # 文字列中に local が含まれている行は無視 15 continue 16 if re.search(r"Interval.*", line): # 文字列中に Interval が含まれている行は無視 17 continue 18 if re.match(r"^-*$", line): # - 行を無視 19 continue 20 if re.search(r"sender", line): # 文字列中に sender が含まれている行は無視 21 continue 22 if re.search(r"receiver", line): # 文字列中に receiver が含まれている行は無視 23 continue 24 if re.match(r"iperf Done.", line): # 文字列中に iperf Done が含まれている行は無視 25 continue 26 if re.match(r"\d{4}/\d{2}.*", line): # タイムスタンプを抽出 27 time_stamp = line.rsplit("\n") 28 continue 29 newlines = line.split() 30 newlines.insert(0, time_stamp) # タイムスタンプを一番初めに挿入 31 print(newlines)
iperf-result.log
2021/09/0217:15:11.24 Connecting to host 10.2.241.1, port 5201 [ 4] local 10.2.241.3 port 62946 connected to 10.2.241.1 port 5201 [ ID] Interval Transfer Bandwidth [ 4] 0.00-1.00 sec 5.00 MBytes 41.9 Mbits/sec [ 4] 1.00-2.01 sec 3.25 MBytes 27.0 Mbits/sec [ 4] 2.01-3.00 sec 15.4 MBytes 130 Mbits/sec [ 4] 3.00-4.01 sec 13.4 MBytes 111 Mbits/sec [ 4] 4.01-5.02 sec 4.00 MBytes 33.4 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 4] 0.00-20.00 sec 386 MBytes 162 Mbits/sec sender [ 4] 0.00-20.00 sec 386 MBytes 162 Mbits/sec receiver iperf Done.
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。