例のやつ
data.txt
___xxx__0.0001__xxx_xxxstart1xxx__ ___xxx__0.0002__xxx_xxxxxxxxxxx__ ___xxx__0.0005__xxx_xxxxxxxxxxx__ ___xxx__0.0007__xxx_xxxxxxxxxxx__ ___xxx__0.0010__xxx_xxxxxxend1xx__ ___xxx__0.0011__xxx_xxxstart2xxx__ ___xxx__0.0012__xxx_xxxxxxxxxxx__ ___xxx__0.0011__xxx_xxxstart3xxx__ ___xxx__0.0017__xxx_xxxxxxxxxxx__ ___xxx__0.0020__xxx_xxxxxxend2xx__ ___xxx__0.0025__xxx_xxend3xxxxxx__ ___xxx__0.0030__xxx_xxxxxxxxxxx__
hoge.py
#!/usr/local/bin/python3 # coding: utf-8 import re MAX_NO = 100 if __name__ == "__main__": # ファイルを開く data = open("data.txt", "r") data = data.readlines() # 開始時間、終了時間、処理時間を定義 start_time = [-1 for i in range(MAX_NO)] end_time = [-1 for i in range(MAX_NO)] ret_time = [-1 for i in range(MAX_NO)] i = 0 # 入力データ出力 for line in data: print(line, end="") print() for line in data: # start, endの文字位置取得 index_start = line.find("start") index_end = line.find("end") # start, end番号取得 index_time = re.findall(r'[0-9]+', line[21:32]) # start文字列が含まれる if(index_start != -1): # start直後の数字を取得 index_time = (int((index_time[0]))) # start時刻を記録 start_time[index_time] = float(line[8:14]) # end文字列が含まれる elif(index_end != -1): # end直後の数字を取得 index_time = (int((index_time[0]))) # end時刻を記録 end_time[index_time] = float(line[8:14]) i = i+1 # end - start時刻を計算 for i in range(MAX_NO): ret_time[i] = end_time[i] - start_time[i] print(start_time) print(end_time) print(ret_time)
出力結果
[-1, 0.0001, 0.0011, 0.0011, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] [-1, 0.001, 0.002, 0.0025, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] [0, 0.0009, 0.0009, 0.0014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]