2012-01-27 10 views

Odpowiedz

19

Zastosowanie subprocess.check_output() zamiast subprocess.call()

+0

Dziękuję. 'subprocess.check_output()' jest tym, który uruchamia polecenie i zwraca zwracaną wartość. – David542

+0

Jeśli chcesz, aby wyjście zapisało twoją wartość do STDOUT i użyj 'check_output()', aby uzyskać wartość. W przeciwnym razie jcollado ma rację, że status wyjścia procesu jest już zwrócony. –

3

subprocess.call już zwraca wartość powrotną proces. Jeśli zawsze uzyskujesz 0, musisz przejrzeć SCRIPT, aby upewnić się, że zwraca on oczekiwaną wartość.

Aby dwukrotnie sprawdzić, można również wykonać powłokę SCRIPT i użyć kodu $?, aby uzyskać kod powrotu.

6

Jeśli skrypt zwraca wartość, wtedy chcesz użyć subprocess.check_output():

subprocess.check_output([SCRIPT, "-d", date], shell=True). 

subprocess.check_call() dostaje ostateczną wartość zwracaną ze skryptu, a 0 oznacza ogólnie „skrypt zakończona pomyślnie”.

Powiązane problemy