我有一个CSV文件,每15分钟计算一次时间戳中的数据。 我需要试着找出如何查看,如果文件中缺少任何15分钟。但我不能让代码100%工作。
希望你能帮忙!首先,我从csv中获取数据并将其设置为时间戳。格式为yyyy-mm-dd-hh:mm。
lst = list()
with open("CHFJPY15.csv", "r") as f:
f_r = f.read()
sline = f_r.split()
for line in sline:
parts = line.split(',')
date = parts[0]
time = parts[1]
closeingtime = parts[5]
timestamp = date + ' ' + time + ' ' + closeingtime
lst.append(timestamp)
print(lst, "liste")
(BillBell对以下代码的所有信用) 这里尝试创建一致格式的数据项列表。
from datetime import timedelta
interval = timedelta(minutes=15)
from datetime import datetime
current_time = datetime(2015,12,9,19,30)
data = []
omits = [3,5,9,11,17]
for i in range(20):
current_time += interval
if i in omits:
continue
data.append(current_time.strftime('%y.%m.%d.%H:%M')+' 123.456')
现在我读完了它的前身减去每个日期。我设置了第一个'前任',我之前调用它,因为它必然会与其他日期不同。
我将列表中的每个数据分成两部分,忽略第二部分。使用strptime我将字符串转换为日期。可以减去日期并比较差异。
previous = datetime.now().strftime('%y.%m.%d.%H:%M')
first = True
for d in data:
date_part, other = d.split(' ')
if datetime.strptime(date_part, '%y.%m.%d.%H:%M') - datetime.strptime(previous, '%y.%m.%d.%H:%M') != interval:
if not first:
'unacceptable gap prior to ', date_part
else:
first = False
previous = date_part
希望你能看到问题。