整数を受け取ってファイルに保存するプログラムを作成する必要があります。15 (または 20、正確な数は関係ありません) になると、最初に書き込んだものを上書きします。それらは同じ行にある場合もあれば、それぞれが新しい行にある場合もあります。このプログラムはセンサーから温度を読み取り、それを PHP チャートのあるサイトに表示します。
たぶん30分ごとに値を書き込むことを考えました.15個の値があり、新しい値が来ると、最も古い値が上書きされます.
値の保存に問題があります。リストを新しい行を含む文字列として保存する方法がわかりません。2 つの新しい行が保存されます。Python は初めてで、本当に迷子になります。
これは機能しませんが、私がやりたいことの「サンプル」です:
import sys
import os
if not( sys.argv[1:] ):
print "No parameter"
exit()
# If file doesn't exist, create it and save the value
if not os.path.isfile("tempsHistory"):
data = open('tempsHistory', 'w+')
data.write( ''.join( sys.argv[1:] ) + '\n' )
else:
data = open('tempsHistory', 'a+')
temps = []
for line in data:
temps += line.split('\n')
if ( len( temps ) < 15 ):
data.write( '\n'.join( sys.argv[1:] ) + '\n' )
else:
#Maximum amount reached, save new, delete oldest
del temps[ 0 ]
temps.append( '\n'.join( sys.argv[1:] ) )
data.truncate( 0 )
data.write( '\n'.join(str(e) for e in temps) )
data.close( )
''.join や \n などで迷子になっています...つまり、[ '', ''] ではなく、リストを文字列として保存するには、join で記述する必要があります。'\n'.join を使用すると、2 倍のスペースを節約できると思います。前もって感謝します!