2017-07-05 13 views
-1

誰かが鉱山のコードで私を助けることができますか?私はシステムの.txtファイルにコードの結果を出力したいが、私はエラーが出るので、自分自身で解決できない。誰かがコードを手伝ってくれる?結果をファイルに出力

# Importeer bibliotheek voor systeemfuncties. 
import sys 
import datetime 
import time 

############ 
## Part 1 ## 
############ 
#temperatuur uitlezen 
# Definieer een array (temp). 
temp = {} 

sensorids = ["28-0416b07c2dff"] 
# loop net zo lang alles sensors af dat in het array hieboven staan. 
    for sensor in range(len(sensorids)): 
    tfile = open("/sys/bus/w1/devices/"+ sensorids[sensor] +"/w1_slave") #RPi 2,3 met nieuwe kernel. 
    # Lees alle dat uit het "bestand" in een variabele. 
    text = tfile.read() 
    # Sluit het "bestand" nadat we het gelezen hebben. 
    tfile.close() 
    # We gaan nu de tekst splitsen per nieuwe regel (\n) 
    # en we selecteren de 2e regel [1] (1e regel = [0]) 
    secondline = text.split("\n")[1] 
    # Splits de regel in "woorden", er wordt gespleten op de spaties. 
    # We selecteren hier het 10 "woord" [9] (tellend vanaf 0) 
    temperaturedata = secondline.split(" ")[9] 
    # De eerste 2 karakters zijn "t=", deze moeten we weghalen. 
    # we maken meteen van de string een integer (nummer). 
    temperature = float(temperaturedata[2:]) 
    # De temperatuurwaarde moeten we delen door 1000 voor de juiste waarde. 
    temp[sensor] = temperature/1000 
    #laatste mogelijkheid 
    temperatuur2 = temp[sensor] 
    # print de gegevens naar de console. 
    #print "sensor", sensor, "=", temp[sensor], "graden." 
    print temperatuur2 

############ 
## Part 2 ## 
############ 
#waardes wegschrijven naar text bestand 
#Open file 
file = open("/home/pi/python_prog/_Log/_temp.txt", "a") 

#schrijf waarde testbestand [Tijd: Temp] 
file.write(time.strftime("%A %d-%m-%Y %H:%M:%S: ")) 
file.write(temperatuur2) 
file.write('\r\n') 

#file.write() 



#Sluit File 
file.close() 

それは私がスクリプトを実行すると、私は次のエラーを取得する、「パート2」の選択でうまくいかない:

「トレースバック(最新の呼び出しの最後): ファイル」./python_prog/temp2 .py "、行48、 のfile.write(temperatuur2) TypeError:文字バッファオブジェクトが予想されます。"

私を助けてください!

答えて

1
file.write(str(temperatuur2)) 

文字列をファイルに書き込む必要があります。

+0

どれくらい簡単にできますか...ありがとうございます! – Dvdk

関連する問題