2017-08-22 17 views
0

raspberry pi起動後に自動的に実行されるpythonスクリプトの出力に問題があり、crontabを使用して作成したoutput.txtファイルにその出力を書き込みます。私が欲しいの出力のraspberry pi起動後に実行されるpythonスクリプトの出力

2017/08/13 01:49:12 
0 
1 
1 
1 
1 
0 
0 
0 
0 
0 
0 
0 
0 

フォーマット:2017 /私は私のスクリプトのこの

@reboot python /home/pi/test.py >> /home/pi/output.txt& 

出力のような書き込みがある持っているのcrontabで

while True: 
f=open('test.txt','w+') 
d_date = datetime.datetime.now() 
reg_format_date = d_date.strftime("%Y/%m/%d %H:%M:%S") 
print(reg_format_date) 
f.write(reg_format_date)   
for x in range (27,14,-1): 
    key_in=GPIO.input(x) 
    if key_in==0: 
     y='1' 
     print(y) 
     f.write(y)    

    else: 
     y='0' 
     print(y) 
     f.write(y) 
    f.close() 

:私のコードは次のようなものです08/12 01:33:28 0111100000000

答えて

0

ヘルプ(印刷):

モジュールの組み込みコマンドで、組み込み関数、印刷のヘルプ:

print(...) 
    print(value, ..., sep=' ', end='\n', file=sys.stdout) 

    Prints the values to a stream, or to sys.stdout by default. 
    Optional keyword arguments: 
    file: a file-like object (stream); defaults to the current sys.stdout. 
    sep: string inserted between values, default a space. 
    end: string appended after the last value, default a newline. 

だからあなたのコードは、それがないように、あなたが最初の印刷の後にコンマを置くなるように修正される同じ行に印刷するために新しい行には移動せず、次のようになります。

while True: 
f=open('test.txt','w+') 
d_date = datetime.datetime.now() 
reg_format_date = d_date.strftime("%Y/%m/%d %H:%M:%S") 
print(reg_format_date), 
f.write(reg_format_date)   
for x in range (27,14,-1): 
    key_in=GPIO.input(x) 
    if key_in==0: 
     y='1' 
     print(y,end='') 
     f.write(y)    

    else: 
     y='0' 
     print(y,end='') 
     f.write(y) 
    f.close() 
+0

印刷機能では問題ありませんが、ファイルに書き込むと改行します。ファイル内の同じ行に書き込む方法 – user70905

+0

これについては、投稿を参照してください。https://stackoverflow.com/questions/17290829/continue-writing-in-same-line-of-file –

+0

コードはF5によって手動で出力されます。2017/08/22 11:46:08 1111111111111ですが、crontabを使用して自動実行されている場合、ファイルに書き込むと改行になります – user70905

関連する問題