2013-10-31 41 views
0

我有一个Python程序,每秒需要三个电压读数。我通常从Linux桌面Lxterminal运行它。然后,在Pylab中使用电压与时间来创建一个图。然而,由于它需要电压读数,它有时会暂停,这会在数据中产生差距,这可能会破坏测试。这些差距持续1至6秒。我注意到暂停是由我的程序的'打印>>日志文件,时间(),(伏特)'脚本引起的。但是,如果我删除日志文件脚本并从命令提示符(又名“终端”,“控制台”,“shell”)运行它,这些暂停不存在。 当我从命令提示符运行程序时,它会打印出显示在显示器上的很长一系列电压,但没有用于创建绘图的日志文件。我的问题是,有没有办法将这些电压存储在终端外壳中,然后在Pylab中使用这些很好的无间隙电压?我想:是否有可能在python的终端中创建一个日志文件?

list = time(), volts 

但我不知道下一步该怎么做,或者如果我即使是在朝着正确的方向。这是我的程序。

import time, sys, signal, math  
from Adafruit_ADS1x15 import ADS1x15  
from time import time, sleep  
def signal_handler(signal, frame):  
    sys.exit(0)  
signal.signal(signal.SIGINT, signal_handler)  
ADS1115 = 0x01  
adc = ADS1x15(ic=ADS1115)  

while True:  
    voltsdiff = adc.readADCDifferential01(4096, 8)  
    logfile = open('logfile.txt', 'a')  
    print >> logfile, time(), voltsdiff  
    logfile.close()  
    sleep(0.25) 

回答

2

看看在logging模块

无需打开和关闭文件每次循环。

with open('logfile.txt', 'a') as f: 
    while True:  
     voltsdiff = adc.readADCDifferential01(4096, 8)  
     print >> f, time(), voltsdiff  
     sleep(0.25) 
+2

有一个python模块的一切:') – samrap

+0

非常感谢,我会试试看。 – Rico

+0

好吧,logging.basicConfig也不起作用。它与我的print >> logfile有相同的数据差距。监视器上显示的内容是否存储在任何位置?我的小树莓派电脑不能胜任这项工作吗? – Rico

相关问题