【发布时间】:2017-02-04 14:09:50
【问题描述】:
我正在尝试使用 Raspberry Pi 3 通过从 shell 执行的 Python 代码记录 DS18B20 传感器的温度。
我想用时间戳记录温度,然后保存文件。
我目前正在做的是将它保存到代码中输入的文件名,但我想在文件名中记录带有日期和时间戳的文件。
案例 1: 当我将文件名放入代码中时,我可以一遍又一遍地将数据附加到同一个文件中,但如果不编辑代码,我就无法开始新的单独日志记录。
#Writes data to file
def write_temp(temperature):
with open("/home/pi/temp.csv", "a") as log:
log.write("{0},{1}\n".format(strftime("%Y-%m-%d %H:%M:%S"),str(temperature)))
问题是文件总是 temp.csv 并且每次都会附加数据。
案例 2:我尝试从时间戳获取文件名,但每秒都会生成一个新文件。
def write_temp(temperature):
filename1 = strftime("%Y-%m-%d %H:%M:%S")
#filename1 = sys.argv[1]
with open('%s.csv' % filename1, 'a') as log:
log.write("{0},{1}\n".format(strftime("%Y-%m-%d %H:%M:%S"),str(temperature)))
在上述情况下,我希望在每次记录开始时或记录结束时设置文件名。我还想将名称保存为 Log-DateTime 而不仅仅是 DateTime。我通过 ('"Log-" + %s.csv' % filename1, 'a') 而不是 ('%s.csv' % filename1, 'a') 尝试了这个,但没有成功。
理想情况:我希望文件名是 WORD-DateTime,其中 WORD 作为参数从命令行发送,如下所示:
sudo python TTLogging.py WORD
你能指出我哪里出错了吗?如果需要,我可以分享我工作的完整代码,因为这是一个学习练习。
【问题讨论】:
标签: python csv datetime raspberry-pi