我試圖計算創建和更新文件之前的時間差,以分鐘計算丟失數據的數量。但我無法正確減去它們。我的代碼如下。從python的csv文件的當前日期時間減去日期時間
在文件中的數據是這樣的:
DATE,temp1
2017-08-14 17:10:01,0.44
2017-08-14 17:15:01,0.62
2017-08-14 17:20:01,0.99
2017-08-14 17:25:01,0.85
2017-08-14 17:30:01,0.13
2017-08-14 17:35:01,0.24
2017-08-14 17:40:02,0.95
2017-08-14 17:45:01,0.65
而且代碼:
#!/usr/bin/env python
# -*-coding:utf-8 -*
import os
import sys
import time
from time import mktime, strftime, localtime, sleep
from datetime import datetime, timedelta
def missing_data(expect, missed):
.
.
.
.
def main():
fmt = '%Y-%m-%d %H:%M:%S'
with open('/home/kamil/Desktop/sensor1/temp.dat', 'rb') as f:
read = f.readlines()[1:]
for line in read:
line = line.strip().split(',')
# print line
start_date = line[0] # type is str so i convert it to datetime
start_date = datetime.strptime(start_date, fmt) # type is datetime.datetime and here I need the first timestamp in the file only
current_time = datetime.now()
step_size = 5
differ_time = current_time - start_date
minutes_values = differ_time.total_seconds()/60
print 'minutes_values:::::::::::::::::::', minutes_values
missed = int(minutes_values/step_size)
expected = .........
missing_data(expected, missed)
if __name__ == '__main__':
main()
如果我打印minutes_values,它給我的結果是這樣的:
40.755
35.7553
30.755
25.755
20.755
15.755
10.755
5.755
0.755
但我只是需要最後的值,例如40.755在這種情況下。我是編碼新手。有人可以幫助我,在這方面如何獲得單一的價值。
它說浮動對象是不可迭代的 –
對不起,我很難測試何時不提供示例數據,否則我會在發佈前測試。請在迴路中的某處打印一份打印minutes_values語句來完整回溯,以幫助進行調試。 – Evan
我犯了一個錯誤。我試過這樣.............. minutes_values = differ_time.total_seconds()/ 60然後minutes_values.append(minutes_values)........它給我這個錯誤int不可迭代。 。所以我說得對。非常感謝您的幫助。 –