2016-07-02 6 views
2

Kann jemand helfen verstehen, warum die folgenden Integer-Vergleichinteger Vergleich Ausfall

nicht
import subprocess 
cmd = "adb -s serialid shell getprop sys.boot" 
proc = subprocess.Popen(cmd.split(' '), stdout=subprocess.PIPE, stderr=subprocess.PIPE) 
outs, errs = proc.communicate() 
print outs 
if outs ==1: 
    print "Condition met.." 
else: 
    print "Condition fail.." 

OUTPUT: -

Z:\loadbuild>python calculate_attempts.py 
1 

Condition fail.. 
+0

Wie dies alles mit Android zu tun? – Li357

+1

Weil 'adb -s serialid shell getprop sys.boot' ist ein Android-Befehl, der' 1' ausgibt, ich hatte gehofft, sie würden wissen – user2125827

+0

Ahh, habe das nicht gesehen, mein Schlechter – Li357

Antwort

2

outs ist der Stoff, der Prozess druckt auf die Standardausgabe. Als solche wird es eine Zeichenfolge, kein Int. Da sie unterschiedliche Typen sind, wird der Vergleich immer fehlschlagen.

Vielleicht sollte Ihr Zustand so etwas wie:

if outs.strip() == '1': 
    ...