我一直在尝试创建一个小程序来记录每分钟的CPU温度,这就是我想出来的。
import os
import time
import datetime
var = 1
while var == 1:
timesStamp = time.time()
temperature = os.popen('vcgencme measure_temp').readline()
date = datetime.datetime.fromtimestamp(timeStamp).strftime('%d/%m/%y %H: %M: %S')
text_file = open("TempLog.log")
text_file.write(str(temp) + ' ' + str(date) + '\n')
text.file.close()
time.sleep(60)
我运行并创建日志文件,但它只执行一次,而不是每分钟运行一次并将结果记录在新行上。
我是RPi和python(版本3.3)的新手。
答案 0 :(得分:1)
您需要以追加模式打开文件。
text_file = open('TempLog.log', 'a')
open
采用第二个参数指定访问模式。其他有效值为读取访问的“r”,写入访问的“w”,二进制访问的“b”和写入和附加到文件的“a”。
您可以在以下网址找到:http://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files
答案 1 :(得分:0)
#!/bin/bash
cpuTemp0=$(cat /sys/class/thermal/thermal_zone0/temp)
cpuTemp1=$(($cpuTemp0/1000))
cpuTemp2=$(($cpuTemp0/100))
cpuTempM=$(($cpuTemp2 % $cpuTemp1))
echo CPU temp"="$cpuTemp1"."$cpuTempM"'C"
echo GPU $(/opt/vc/bin/vcgencmd measure_temp)
答案 2 :(得分:0)
如果我没记错的话,它读取的是GPU温度,而不是CPU
temperature = os.popen('vcgencme measure_temp').readline()
CPU温度应该是这样
tFile = open('/sys/class/thermal/thermal_zone0/temp')
temp = float(tFile.read())
tempC = temp/1000
再加上Halfdan的答案,应该可以让您完全正常工作。