我需要一些帮助在for循环中做一些简单的计算。我在下面的示例文件中有两列。第1列是日期时间-hr-min-ss,第2列是值。我想打印文件并计算当前值与前一小时值之间的差异。我尝试了下面的代码,但无法减去前一个小时的值。我可以在下面更正我的代码时获得一些帮助/指导吗?提前谢谢。
文件内容:
20160823220000 1208091708
20160823230000 1209559863
20160824000000 1210706089
20160824010000 1211612458
20160824020000 1212410614
20160824030000 1213059346
我的代码:
with open('datecount.txt') as data:
z = 0
for line in data:
x = (line.strip().split())
num = int(x[1])
z = num
print(z - z)
期望的输出:
date-time-hr-min-ss Value Delta-from-prev-Hr
==========================================================
20160823220000 1208091708 N/A
20160823230000 1209559863 1468155
20160824000000 1210706089 1146226
20160824010000 1211612458 906369
20160824020000 1212410614 798156
20160824030000 1213059346 648732
答案 0 :(得分:3)
with open('datecount.txt') as data:
prev = 0
for line in data:
value = int(line.strip().split()[1])
print(value - prev)
prev = value
为变量命名以使其名称有意义是一个好主意。换句话说,请将x, y, z
留在数学中。
答案 1 :(得分:1)
如果您可以假设文件中的每一行都是前一小时后的一小时,那么您甚至不必担心会弄乱时间列。只需使用它..
with open('datecount.txt') as data:
z = 0
for line in data:
x = (line.strip().split())
num = int(x[1])
print(num - z)
z = num
你的代码已经完成了这个,你只需要在将z分配给num之前打印(num-z)。而且你也有打印(z-z)不打印(num-z)