Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
djevil
User
Beiträge: 58 Registriert: Montag 22. August 2016, 14:28
Dienstag 6. Dezember 2016, 11:06
Moin,
Ich versuche hier schon eine ganze Weile, einen String auszuführen:
Code: Alles auswählen
key1 = data[26] ## int
print(key1)
key2 = keycode[key1] ## int
print(key2)
key3 = "uinput." + str(key2)
print(key3)
device.emit_click(key3)
print(key3) gibt:
und ausgeführt werden soll:
Also es sieht zumindest richtig aus, auch wenn sicher sehr umständlich, aber warum funktioniert es aber dennoch nicht?
Mfg
d
BlackJack
Dienstag 6. Dezember 2016, 11:13
@djevil: Du willst keine Zeichenketten ausführen!
Die erste Frage ist warum `key2` den Wert 'KEY_X' hat, wo der Kommentar doch ``## int`` verspricht‽ Wie kommt `keycode` zustande und warum steht da ein Name und nicht schon der Wert, den Du eigentlich haben willst?
Ansonsten suchst Du die `getattr()`-Funktion um vom `uinput`-Objekt das Attribut abzufragen dessen Name an `key2` gebunden ist.
djevil
User
Beiträge: 58 Registriert: Montag 22. August 2016, 14:28
Dienstag 6. Dezember 2016, 12:06
O, sorry, key2 ist schon string
Code: Alles auswählen
key1 = data[26] ## int
print(key1)
key2 = "uinput."+keycode[key1] ## key1= int, str keycode from dict
print(key2)
device.emit_click(key2)
print(getattr(uinput, "KEY_5"))
Ausgabe
>> (1, 6) ## KEY_5 = (0x01, 6) lt. Definition
djevil
User
Beiträge: 58 Registriert: Montag 22. August 2016, 14:28
Dienstag 6. Dezember 2016, 12:50
@BlackJack:
Du willst keine Zeichenketten ausführen!
Ja, weiss nicht, ich will halt das Argument als Variable ausführen..
Zuletzt geändert von
djevil am Dienstag 6. Dezember 2016, 12:56, insgesamt 1-mal geändert.
Sirius3
User
Beiträge: 17754 Registriert: Sonntag 21. Oktober 2012, 17:20
Dienstag 6. Dezember 2016, 12:53
@djevil: was ist keycode? Und warum stehen da nicht schon die KEY-Konstanten sondern nur die Namen als Strings drin?
Sirius3
User
Beiträge: 17754 Registriert: Sonntag 21. Oktober 2012, 17:20
Sirius3
User
Beiträge: 17754 Registriert: Sonntag 21. Oktober 2012, 17:20
Dienstag 6. Dezember 2016, 17:54
@djevil: der Wert von uinput.KEY_1 ist ein Tuple: (1, 2). Den Wert »uinput.KEY_1« gibt es nicht. Den brauchst Du ja auch nirgends.
djevil
User
Beiträge: 58 Registriert: Montag 22. August 2016, 14:28