我想使用Python在csv文件中打印每秒毫秒-1到1的随机数据。我开始每秒打印一次,它起作用了。但是,我在每毫秒打印随机数据时遇到困难。我希望时间戳采用UNIX纪元格式,如" 1476449030.55676" (毫秒,小数点不是必需的)
Lazy
答案 0 :(得分:0)
UPD:time.sleep()
在几秒钟内接受参数,因此您不需要将其除以1000.修正后,我的输出如下:
0.18153176446804853,1476466290.720721
-0.9331178681567136,1476466290.721784
-0.37142653326337327,1476466290.722779
0.1397040393287503,1476466290.723766
0.7126280853504974,1476466290.724768
-0.5367844384018245,1476466290.725762
0.44284645253432786,1476466290.726747
-0.2914685960956531,1476466290.727744
-0.40353712249981943,1476466290.728778
0.035369003158632895,1476466290.729771
考虑到time.sleep和其他时间函数的精确度,这是最好的。
这是一个精简版本,每秒将时间戳输出到stdout:
import time
tstep = 0.001
tnext = time.time() + tstep
NumberOfReadings = 10; # 10 values ( 1 value for 1 millisecond)
for i in range(NumberOfReadings):
now = time.time()
print(now)
time.sleep(tnext - now)
tnext += tstep
=============================================== =
这是问题所在:
float(tdiff.total_seconds()/1000)
使用整数除法,然后将结果转换为float。 相反,您需要使用浮动除法:
tdiff.total_seconds()/1000.0