【发布时间】:2020-06-15 10:31:40
【问题描述】:
我创建了一个读取传感器数据的程序。根据我的用例,我必须每 5 秒将读数存储在一个文本文件中,并使用新的文件名示例:file1、file2、file3 等等,直到我使用键盘停止程序。谁能指导我完成这项任务?
import sys
import time
import board
import digitalio
import busio
import csv
import adafruit_lis3dh
from datetime import datetime, timezone
i2c = busio.I2C(board.SCL, board.SDA)
int1 = digitalio.DigitalInOut(board.D6) # Set this to the correct pin for the interrupt!
lis3dh = adafruit_lis3dh.LIS3DH_I2C(i2c, int1=int1)
lis3dh.range = adafruit_lis3dh.RANGE_2_G
with open("/media/pi/D427-7B2E/test.txt", 'w') as f:
sys.stdout = f
while True:
ti = int(datetime.now(tz=timezone.utc).timestamp() * 1000)
x, y, z = lis3dh.acceleration
print('{}, {}, {}, {}'.format(ti,x / 9.806, y / 9.806, z / 9.806))
time.sleep(0.001)
pass
【问题讨论】:
-
由于
while循环休眠0.001秒,您当然可以编写一个计数器来跟踪它运行了多少次,因此您的代码每次计数器达到 5000 (记得重置它)。更好的方法是计算您的代码最后记录了多长时间并执行写入文件的语句,然后时间限制超过 5 秒(并重置该计数器) -
while 循环一直在运行
-
是的,在 while 循环中,您需要添加逻辑来跟踪计数器或时间。
-
你能分享一个例子吗?
标签: python datetime time python-datetime