Es geht um diesen keinen Code:
Code: Alles auswählen
import subprocess
# Terminal-in Variable-Packen
output = subprocess.check_output("lsusb")
print(output)
usbid = output
usbid.find('1234:1234')
zum Test ins Terminal drucken: ok
Meine Vermutungen:
Der Inhalt von output ist ein Byte-Objekt. Er kann nicht an usbid übergeben werden bzw. spätestens bei der Suchaktion ist Schluss.
Fehlermeldung dazu:
[codebox=bash file=Unbenannt.bsh]File "./xyz.py", line 30, in <module>
usbid.find('1234:1234')
TypeError: a bytes-like object is required, not 'str'
[/code]
String-Behandlung auf Byte-Objekt nicht möglich. Ich habe recherchiert und decode / encode gefunden.
Für meine Zwecke - also Byte-Objekt in String utf8 bräuchte ich den Befehl "decode" <- Richtig?
Außerdem habe ich hier Python3 am Start - da braucht man utf8 gar nicht angeben? <- Richtig?
Wie schreibe ich den die Variable output als String in die Variable usbid?
Gruss jts