2017-05-10 13 views
3

ラズベリーパイ3モデルB (OS NOOBS)にPythonスクリプトがあり、これを実行するとCPUの温度が毎分.csvファイルに記録されます。Pythonスクリプトのオープンとターミナルへの書き込み

私が知りたいのは、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

+0

https://askubuntu.com/questions/351582/open-terminal-window-and-execute-python-script-on-startupこれが役立つかどうかを確認してください –

答えて

1

私はラズベリーにそれをテストすることはできませんが、OS初心者は、利用可能なlxterminalを持つ必要がありますし、次のコードは動作するはずです。お使いのシステムにはlxterminalを存在しない場合、あなたはあなたのニーズに応じてファイルへの書き込みや睡眠を調整することができ、それをインストールするか、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() 

でテストxtermまたはgnome-terminalなどして、以下のコードでそれを交換してみてください。 :)

+0

ありがとうございました!この解決策は理解でき、効果があります。本当に助けてくれてありがとう! :) – Jocke

関連する問題