沒有最適合所有可能的情況。最好的取決於手頭的問題。
以下是如何產卵一個過程,它的輸出保存到一個文件合併標準輸出/標準錯誤:
import subprocess
import sys
def spawn(cmd, output_file):
on_posix = 'posix' in sys.builtin_module_names
return subprocess.Popen(cmd, close_fds=on_posix, bufsize=-1,
stdin=open(os.devnull,'rb'),
stdout=output_file,
stderr=subprocess.STDOUT)
產卵可並行使用腳本運行多個進程和對方:
processes, files = [], []
try:
for i, cmd in enumerate(commands):
files.append(open('out%d' % i, 'wb'))
processes.append(spawn(cmd, files[-1]))
finally:
for p in processes:
p.wait()
for f in files:
f.close()
注意:cmd
是無處不在的列表。
來源
2011-11-11 08:12:21
jfs
是的,我認爲這就是我需要的。我正在努力做到這一點。我想分解這個過程,讓他們做他們的事情,稍後再回來,在運行一些其他的命令後,grep他們的輸出。謝謝! – mrmbd