Python脚本打开并写入终端

时间:2017-05-10 12:34:42

标签: python linux terminal output raspberry-pi3

我的Raspberry Pi 3 Model B (OS NOOBS)上有一个Python脚本,运行时,每分钟将CPU的温度记录到.csv文件中。

我想知道的是,如何从Python脚本打开终端并输出终端温度而不是将其记录到.csv文件中?

这是我到目前为止编写的代码:

from gpiozero import CPUTemperature
from time import sleep, strftime, time

cpu = CPUTemperature()

def output_temp(temp):
    with open("cpu_temp.csv", "a") as log:
        log.write("{0}, {1}\n".format(strftime("%Y-%m-%d %H:&M:%S"),str(temp)))

while True:
    temp = cpu.temperature
    output_temp(temp)
    sleep(60)

我计划使用我要求的东西,当温度超过' x'度,终端将打开,打印温度,直到它下降到' x'再次标记。然而,我仍然认为这是我自己的一部分,因为我是一个还在学习的新手。但我被困在我想打开终端并在那里打印变量的部分。

我正在使用该软件" Python 3(IDLE)"编写并运行此代码。完成后我会将其集成,以便在启动时自动运行。

非常感谢任何帮助! 此致 Jocke

1 个答案:

答案 0 :(得分:1)

我无法在覆盆子上测试它,但OS NOOBS应该有lxterminal可用,以下代码应该可以使用。如果您的系统上没有lxterminal,请安装它或尝试使用xtermgnome-terminal等替换下面的代码。在Ubuntu 16上进行测试。

import os
import time
import subprocess


# create custom pipe file
PIPE_PATH = "/tmp/my_pipe"
if os.path.exists(PIPE_PATH):
    os.remove(PIPE_PATH)
    os.mkfifo(PIPE_PATH)

# open terminal that reads from your pipe file
a = subprocess.Popen(['lxterminal', '-e', 'tail --follow {0}'.format(PIPE_PATH)])

# write to file and it will be displayed in the terminal window
message = "some message to terminal\n"
with open(PIPE_PATH, "w") as p:
    p.write(message)

time.sleep(5)

# close the terminal
a.terminate()

您可以根据需要调整文件写入和睡眠状态。 :)