以下のような、二つの時間の時間差を表示するプログラムを組みました。
デイリーログの中には文字列で時間が入っています。ログの項目を除き時間の文字列を偶数行と奇数行にとりだし、時間差を取り、表示します。
Python
1import datetime 2 3with open(r"デイリーログ.txt", 'r', encoding='utf-8') as file: 4 temp = file.read() 5 for i,x in enumerate (temp.split('\n')): 6 time = x[-8:] 7 if i % 2 == 0: 8 time1 = datetime.datetime.strptime(time, '%H:%M:%S') 9 else: 10 time2 = datetime.datetime.strptime(time, '%H:%M:%S') 11 diftime = time2 - time1 12 print (x[:6],diftime)
ここで、以下のようなエラーが出ます。
Traceback (most recent call last):
File "C:/Python/temp/TEST.py", line 8, in <module>
time1 = datetime.datetime.strptime(time, '%H:%M:%S')
File "C:\Python\Python35\lib_strptime.py", line 510, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
エラー表示の中間、ここに結果は正しく表示される。
File "C:\Python\Python35\lib_strptime.py", line 343, in _strptime
(data_string, format))
ValueError: time data '' does not match format '%H:%M:%S'
ログを書き出す所は
Python
1 def logwrite(self,addtxt="",filename="デイリーログ.txt"): 2 now = datetime.now() 3 nowtext=str(sys._getframe(1).f_code.co_name)+addtxt+(' {0:%Y-%m-%d %H:%M:%S}\n'.format(now)) 4 5 print(nowtext) 6 pathstring = os.path.join(self.workdir, filename) 7 with open(pathstring, 'a', encoding='utf-8') as file: 8 file.write(str(nowtext))
で書き出しています。
メインの読み込むコードにおいて、改行コードでテキストを分割しているのですが、途中は良いけど、最後の1行に改行コードがあるため、最後のデータの後に、空白のデータがあることになっている感じだと思うのですが、どう直して良いかわかりません………
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/16 04:26
2018/12/16 04:37 編集