2017-12-07 31 views
0

私はプログラミングに慣れていません。私はこの質問に対する答えをWebページで検索し、成功することなく多くの可能性を試しました。私は現在、私のラズベリーにポテンショメーターを接続してコンソール上の値を取得することができましたが、これらの値をテキストファイルに保存する方法はわかりません。これは私のコードです:テキストファイルにコンソール出力を書き込む方法

#!/usr/bin/python 
import spidev 
import time 

#Define Variables 
delay = 0.5 
ldr_channel = 0 

#Create SPI 
spi = spidev.SpiDev() 
spi.open(0, 0) 

def readadc(adcnum): 
    # read SPI data from the MCP3008, 8 channels in total 
    if adcnum > 7 or adcnum < 0: 
    return -1 
    r = spi.xfer2([1, 8 + adcnum << 4, 0]) 
    data = ((r[1] & 3) << 8) + r[2] 
    return data 

while True: 
    ldr_value = readadc(ldr_channel) 
    print ('---------------------------------------') 
    print("LDR Value: %d" % ldr_value) 
    time.sleep(delay) 
    file = open('data.txt','w') 
    file.write("LDR Value: %d" % ldr_value) 
    file.close()` 

あなたがコードから見ることができるように、私は時間内のすべての値data.txtを上に最後の値を取得することはできませんが。あなたは、端末内のファイルを実行すると、あなたはこのようなファイルには、このスクリプトの出力をリダイレクトすることができ

答えて

1

事前にどうもありがとうございました、私は私の「noobness」のため申し訳ありません:

$ python script.py > /the/path/to/your/file 

でPythonではファイルにsys.stdoutを設定するだけで、すべてのプリントは/the/path/to/your/fileにリダイレクトされます。

import sys 
sys.stdout = open('/the/path/to/your/file', 'w') 

とスクリプトの末尾にファイルをクローズすることを忘れないでください。)

file.close() 
+0

どうもありがとうございました!本当に助けになりました! –

+0

あなたは歓迎します、それを正解とマークできますか?おかげで – maguri

+0

私はそれをどうやって? –

関連する問題