我寫的,我大約4個月前經常使用FUNC,我有我爲什麼拆東西了,記不住像這樣:優勢= subprocess.Popen() - > sp.communicate()VS subprocess.call()
def call_sp(command, **arg_list):
#run that beast
p = subprocess.Popen(command, shell=True, **arg_list)
p.communicate()
我讀了關於子流程的文檔,看到call()基本上做了同樣的事情。如果不記得那一天發生了什麼,除了上面的func和subprocess.call([「mycommand」])之外,任何python系統管理員都知道使用中有意義的區別嗎?我看到我的func沒有返回任何退出狀態,正在檢查命令是否是call()的唯一區別/優勢?這是我今天看到
In [4]: subprocess.call(['echo $HOME'], shell=True)
/home/cchilders
Out[4]: 0
In [5]: %paste
def call_sp(command, **arg_list):
#run that beast
p = subprocess.Popen(command, shell=True, **arg_list)
p.communicate()
## -- End pasted text --
In [6]: call_sp('echo $HOME')
/home/cchilders
感謝
'subprocess.call'確實只是這種情況的一個方便。也許你計劃用'p'('Popen'實例)做其他事情,但從來沒有? (事實上,你可以定義'call_cp = subprocess.call'。) – chepner