2013-08-16 80 views
0

我有以下問題:Python的子AttributeError的

try: 
     with subprocess.check_call(query): 
      return 1 
    except ValueError: 
     return -1 

此代碼運行shell腳本,它的工作至今。腳本返回0.然而,我得到這個錯誤:

with subprocess.check_call(query): 
AttributeError: 'int' object has no attribute '__exit__' 

所以必須有一些錯誤,我的嘗試/ except塊。

回答

4

subprocess.check_call()返回int狀態碼0,而不是上下文管理器。您不能在with聲明中使用它。

return subprocess.check_call(query) 

只是返回該調用的返回值。請注意,它不會引發ValueError異常;如果進程以非零狀態代碼退出,它會提高CalledProcessError

也許你真的想用的是subprocess.call()

相關問題