2014/01/07

python 從2.4開始建議使用
subprocess來取代

os.system
os.spawn*
os.popen*
popen2.*
commands.*

除了 subprocess.call() 之外,另外還有 check_call() 跟 check_output()。

除了 check_output 會回傳 output 之外,用法相同跟 call() 一樣。只不過會自動檢查 return code,如果是非零值的話,就會直接丟出 CalledProcessError,這個時候 return code 還是可以透過 returncode 這個 attribute 來取回。例如:(但是要執行的程式不存在時,還是會丟出 OSError)

如果要捉取回傳的值來進行某些判斷的話
就要使用subprocess.check_output()
範例如下

import subprocess

a = subprocess.check_output("dir", shell=True)
print a

b = a.find('zz')
print b


http://docs.python.org/2/library/subprocess.html
http://imsardine.wordpress.com/tech/shell-scripting-in-python/

沒有留言: