brenner
Commander
- Registriert
- Apr. 2002
- Beiträge
- 3.037
Moin moin,
ich habe hier ein Script welches mir an einer Stelle Sorgen macht.
Aus einer Textdatei (/scripts/sdm630m_to_cacti-pv01.txt) werden Werte ausgelesen und im weiteren Velauf verarbeitet.
Normalerweise sieht der Inhalt der Textdatei so aus und alles funktioniert:
Leider kommt es ab und zu vor das der Inhalt so aussieht:
Das ist durch diverse Umstände bedingt und kann derzeit nicht verhindert werden.
Wenn in der Textdatei dieser Müll steht, schlägt das Script fehl und die Ausgabe sieht so aus:
Wie kann ich verhindern das das Script aufgrund diesen Fehlers seine Funktion nicht weiter ausführen kann?
Wenn Müll in der Textdatei erkannt wird würde ich den beiden Variablen (DAILYPROD und PAC1) gerne den Wert 1 fest zuweisen damit das Script weiter abgearbeitet wird.
ich habe hier ein Script welches mir an einer Stelle Sorgen macht.
Aus einer Textdatei (/scripts/sdm630m_to_cacti-pv01.txt) werden Werte ausgelesen und im weiteren Velauf verarbeitet.
Code:
###
# Werte der PV01 Anlage einlesen
###
#
for line in file('/scripts/sdm630m_to_cacti-pv01.txt'):
pv01array = line.split(':')
#
DAILYPROD = float(pv01array[0])
#AC-seitig erzeugte Leistung
PAC1 = float(pv01array[1])
PAC1 = "%.0f" % PAC1
Normalerweise sieht der Inhalt der Textdatei so aus und alles funktioniert:
Code:
123:1234
Leider kommt es ab und zu vor das der Inhalt so aussieht:
Code:
35695950:3569595041 4294901760 352387072 3949600463 2424422568 3996903512 131289 1112879921 33554432 0 2265511936 0 469910768 0 754997582 3221225472 0 0 1436608519 1788010680 3808428095 2115280881 301989888 875835702 0 206503936 0 0 5373952 0 0 5636096 1505755136 0:
Wenn in der Textdatei dieser Müll steht, schlägt das Script fehl und die Ausgabe sieht so aus:
Code:
root@cacti04:/scripts# ./sdm630m_to_db.py
Traceback (most recent call last):
File "./sdm630m_to_db.py", line 280, in <module>
PAC1 = float(pv01array[1])
ValueError: invalid literal for float(): 3569595041 4294901760 352387072 3949600463 2424422568 3996903512 131289 1112879921 33554432 0 2265511936 0 469910768 0 754997582 3221225472 0 0 1436608519 1788010680 3808428095 2115280881 301989888 87
root@cacti04:/scripts#
Wie kann ich verhindern das das Script aufgrund diesen Fehlers seine Funktion nicht weiter ausführen kann?
Wenn Müll in der Textdatei erkannt wird würde ich den beiden Variablen (DAILYPROD und PAC1) gerne den Wert 1 fest zuweisen damit das Script weiter abgearbeitet wird.
Zuletzt bearbeitet: