这两个很好的答案为您指出了子流程模块。
还有一些围绕这个模块构建的包装器非常值得一看:
1)sh模块(前PBS)
[更新] 如果您被 MS Windows 卡住,请使用 PBS,否则使用它的继任者sh 模块。
使用 sh 模块:
from sh import ifconfig, ls
print(ifconfig("eth0"))
print(ls('-la'))
使用 PBS,来自https://github.com/amoffat/pbs的自述文件:
import pbs
print pbs.ifconfig("eth0")
print pbs.ls('-la')
2) 铅锤
详细信息见 http://plumbum.readthedocs.org/en/latest/。
README 文件中的一些示例:
基本:
>>> from plumbum import local, FG, BG
>>> from plumbum.cmd import ls, grep, wc, cat, head
>>> ls
LocalCommand(<LocalPath /bin/ls>)
>>> ls()
u'build.py\ndist\ndocs\nLICENSE\nplumbum\nREADME.rst\nsetup.py\ntests\ntodo.txt\n'
管道:
>>> chain = ls["-a"] | grep["-v", "\\.py"] | wc["-l"]
>>> print chain
/bin/ls -a | /bin/grep -v '\.py' | /usr/bin/wc -l
>>> chain()
u'13\n'
重定向:
>>> ((cat < "setup.py") | head["-n", 4])()
u'#!/usr/bin/env python\nimport os\n\ntry:\n'
>>> (ls["-a"] > "file.list")()
u''
>>> (cat["file.list"] | wc["-l"])()
u'17\n'