Python os.system problem

Pokusavam napraviti skriptu koja bi poslala kompjuter u sleep ili zakljucala display ako iskljucim neki USB adapter (znam da vec ima 10000000 ovakih skripti i da to mogu raditi u bash-u al mi nesto zapelo da uradim u pythonu :slight_smile: ), imam problem sa ovim

import os
main = os.system('lsusb -d 0930:0508')
if main == "Bus 004 Device 002: ID 0930:0508 Toshiba Corp. Integrated Bluetooth HCI":
    print "blabla"
raw_input('Press any key to exit.')

problem je sto os.system umjesto jedne linije sa Bus 004 Device 002: ID 0930:0508 Toshiba Corp. Integrated Bluetooth HCI izbaci

Bus 004 Device 002: ID 0930:0508 Toshiba Corp. Integrated Bluetooth HCI
0

eh ja sada nezz kako tu nulu ukljuciti u if ili dali je treba ukljuciti, znam da se pomocu \ moze nastaviti neka komanda u drugu liniju ali to ovdje ne radi jer ja moram reci pythonu da on tu nulu vidi kao drugi red os.system-a, a ne kao nastavak Bus 004 Device 002: ID 0930:0508 Toshiba Corp. Integrated Bluetooth HCI

P.S: Skripta nije ni blizu zavrsetka, ovaj bluetooth sam uzeo samo kao primjer, python sam tek poceo uciti, be gentle :smiley:

os.system je funkcija koja ispisuje output naznačene komande na stdout/stderr i vraća return kod.

Ti ustvari upoređuješ return kod (0) sa stringom.
Tebi treba popen, za detalje pogledaj subprocess modul:
http://docs.python.org/library/subprocess.html#subprocess-replacements

Btw, ako iz python shella testiraš os.system(cmd) bez dodjele vrijednosti (npr da vidiš zašto ti gornji kod ne radi),
onda ti on ispiše output komande i povratni kod (odnosno vrijednost izraza os.system()), kao da imaš:

>>> a = 5
>>> a
5
>>>