我应该如何在python2.7中打印输出结果

时间:2018-06-27 23:40:49

标签: python

我将一些数据(例如温度,湿度和强度)存储在数组中,这是我的python2.7的arduino输出和输入,并且正在从该数据中绘制图形。 我也想将arduino输出存储到文本文件中,但是由于我是python的新手,所以我无法做到这一点。

这是我的python代码

import serial
import numpy as np
import matplotlib.pyplot as plt
from drawnow import *
l=[]
t = []
h = []
arduinoData = serial.Serial('com3',115200)
plt.ion()
count=0
def makeFig():
    ax1 = plt.subplot(211)
    plt.ylim(0,100)
    plt.title('Temperature and Humidity')
    plt.grid(True)
    plt.ylabel('temp in C')
    plt.plot(t, 'ro-', label='Drgrees Celsius')
    plt.legend(loc='upper left')
    plt2=plt.twinx()
    plt.ylim(0,100)
    plt2.plot(h,'b^-',label='Humidity in %')
    plt2.legend(loc='upper right')
    ax2 = plt.subplot(212, sharex=ax1)
    plt.ylim(0,100)
    plt.grid(True)
    plt.ylabel('Intensity in Lux')
    plt.plot(l, 'ro-', label='Lux')
    plt.legend(loc='upper left')
while True:
    while (arduinoData.inWaiting()==0):
        pass
    arduinoString = arduinoData.readline()
    dataArray = arduinoString.split(',')
    lux = float (dataArray[0] )
    humd = float ( dataArray[1])
    temp = float ( dataArray[2])
    t.append(temp)
    h.append(humd)
    l.append(lux)
    drawnow(makeFig)
    plt.pause(.000001)
    count=count+1
    if(count>60):
        t.pop(0)
        h.pop(0)
        l.pop(0)

我想将t,h,l存储在文本文件中作为输出 帮助将不胜感激。...

2 个答案:

答案 0 :(得分:1)

只需使用以下命令即可打开文件:

f = open('file.txt', 'w')

,然后您可以使用:

f.write("Value of t : {}".format(t))

最后使用

关闭文件
f.close()

答案 1 :(得分:0)

按打印,您的意思是输出到文本文件吗?如果是这样,您可以添加:

np.savetxt('filename.txt', np.r_[t,h,l])

[filename.txt可以是您希望文本文件成为的任何名称,除非您有一个]

np.r将连接矩阵。我不确定这是否是您要执行的操作,但这是一个选择