Python ValueError: invalid literal for int() with base 10?
Wenn ich mein Programm ausführen will kommt diese Fehlermeldung:
Traceback (most recent call last):
File "/home/jonathan/Dokumente/color.py", line 8, in <module>
pi.set_PWM_dutycycle(22, int(red_brightness))
ValueError: invalid literal for int() with base 10: 'color.py'
Und der Code ist:
import pigpio
import sys
red_brightness = sys.argv[0]
pi = pigpio.pi()
pi.set_PWM_dutycycle(22, int(red_brightness))
pi.stop()
2 Antworten
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
PC, Computer, programmieren
Das erste Element, welches in argv steht, entspricht dem Namen des Skripts, welches ausgeführt wird. Du wolltest sicherlich stattdessen ein Argument, welches du an das Skript mit übergibst, in eine Zahl umwandeln. Schau in argv[1].
Schau dir mal an welchen Inhalt die variable trägt.
Der Inhalt von sys.argv[0] ist immer der Dateiname somit klar das es nicht funktioniert wenn du dem Programm Kauderwelsch übergibst welches nicht versteht.
Also versuche es mit sys.argv[1] und darauf überprüfe aber erst ob die variable da es eine Liste ist überhaupt 2 lang ist.
if len(sys.argv) < 2:
sys.exit()
Überprüfe auch am besten nochmal ob es sich überhaupt um eine Zahl handelt.
Woher ich das weiß:eigene Erfahrung