Python-将传感器数据写入文件
我正试图写一个代码,我可以从模拟传感器中获取数据,并希望将数据写入.txt文件。我做了一些研究并编写了这段代码-Python-将传感器数据写入文件,python,Python,我正试图写一个代码,我可以从模拟传感器中获取数据,并希望将数据写入.txt文件。我做了一些研究并编写了这段代码- #!/usr/bin/env python # -*- coding:utf-8 -*- import spidev import time spi = spidev.SpiDev() spi.open(0, 0) datafile = file.open("temperature.txt", "w") def ReadChannel(channel): adc = s
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import spidev
import time
spi = spidev.SpiDev()
spi.open(0, 0)
datafile = file.open("temperature.txt", "w")
def ReadChannel(channel):
adc = spi.xfer2([1, 8+channel <<4, 0])
data = ((adc[1]& 3) << 8) + adc[2]
return data
def ConvertVolts(data, places):
volts = (data*3.3)/float(1023)
volts = round(volts, places)
return volts
def ConvertTemp(data, places):
temp = ((data*200)/float(1023))-50
temp = round(temp, places)
return temp
temp_channel = 0
delay = 5
while True:
temp_level = ReadChannel(temp_channel)
temp_volts = ConvertVolts(temp_level, 2)
temp = ConvertTemp(temp_level, 2)
print"Temperature (deg F): ", temp
datafile.write(str(temp)+"\n")
time.sleep(delay)
datafile.close()
#/usr/bin/env python
#-*-编码:utf-8-*-
导入spidev
导入时间
spi=spidev.spidev()
spi.open(0,0)
datafile=file.open(“temperature.txt”、“w”)
def读取通道(通道):
adc=spi.xfer2([1,8+通道我认为您的文件输出流永远不会刷新到磁盘,因为您只是写入文件,然后用control-c结束循环,对吗
也许试着让循环运行10次,然后关闭文件,作为一种尝试。
您是否获得了正确的打印温度输出?为什么不使用内置的日志记录功能?那么它可能看起来像这样
import logging
logging.basicConfig(filename=PATHTOFILE, loglevel=logging.INFO)
然后你可以:
logging.info("TEXTTOWRITETOTHEFILEHERE")
而不是datafile.write(…)
如果存在,它将附加到文件中,并向其中添加日期/时间。它还将处理文件,例如close()等。
不应该需要延迟!更改线路:
datafile = file.open("temperature.txt", "w")
为此:
datafile = open("temperature.txt", "w")
因为它现在正在为我工作。如果仍然没有写入文件,请检查传感器数据的获取。如果temp变量打印正确,请阅读以下内容
为了更好地使用和关键字,
因为它包括.close()甚至try/finally块(非常适合循环公式)。您可能需要使用“a”模式添加数据,然后使用“w”模式重写数据:
while True:
#read temp here
with open("temperature", "a") as datafile:
datafile.write(temp)
与其说不那么一致,不如说:
datafile = open("temperature.txt", "w")
while True:
#temp here
datafile.write(temp)
datafile.close()
它实际上永远不会关闭文件…当您使用w
和a
标志时是相同的,还是只是w
不起作用?此外,您是否有权在该文件夹(windows/linux)中写入文件和执行其他操作?另外,您不需要执行file.open
,只需执行open
即可。嘿,感谢您的输入。我按照您的建议使用了open命令。我还使用了chmod u+rw filename.py,但它仍然不会在文件中写入任何内容。