Hallo zusammen,
ich lese über ein kleines Python Skript Temperaturen (1wire) aus und schreibe diese in eine Datei:
Code
def GetTemp10():
a = open(SensorPfad+Sensor10.strip()+'/w1_slave', 'r') # Ermittelten Sensor lesen
Temp = a.readline()
if re.match(r"([0-9a-f]{2} ){9}: crc=[0-9a-f]{2} YES", Temp): # Erste Zeile auf "YES" am Ende uberprufen
Temp = a.readline()
m = re.match(r"([0-9a-f]{2} ){9}t=([+-]?[0-9]+)", Temp) # Wert aus zweiter Zeile prufen
if m:
value = str(float(m.group(2)) / 1000.0) # Wert nach t= auslesen und umwandeln
a.close()
with open('/media/USB_DATA_01/anzeige/zisterne', 'w') as temp_file:
temp_file.write(value)
return value # Ruckgabewert "value" definieren
Alles anzeigen
in der Datei steht dann zB. nur "7.234"
in einem anderen Programm lese ich die Datei dann aus und rechne damit.
ab und an läuft das Programm dann auf einen Fehler, ich vermute mal dass in der Datei keine Zahl steht sondern ein Wort/String. Ist aber nur eine Vermutung, da ich die Datei zu dem Zeitpunkt noch nicht lesen konnte und später dann wieder überschrieben wird. Auf jeden Fall wird das Programm dann mit der Meldung abgebrochen:
Code
Traceback (most recent call last):
File "/mnt/ultraschall/NEU/ultra_messung_NEU_01.py", line 147, in <module>
aktwert = distance_cm()
File "/mnt/ultraschall/NEU/ultra_messung_NEU_01.py", line 126, in distance_cm
schall = 331.5 + (0.6 * float(tempzis))
ValueError: could not convert string to float:
Wie kann ich in dem Skript das so abfangen, dass nur ein Zahlenwert in die Datei geschrieben wird und kein String??
Danke schon mal
F11