擅长:python、mysql、java
<p><code>os.system</code>不是常用的Python命令。相反,它“调用”更广泛的操作系统:<code>os.system(foo)</code>与进入命令行并键入<code>foo</code>大致相同。这是从Python脚本执行任何程序的一种快速而肮脏的方法。</p>
<p>当然,有一些非快速和肮脏的方法。它们位于<code>subprocess</code>模块中,允许您启动任意子进程(其他程序)并与其通信,向其发送数据并接收其输出。</p>
<p>其中有一个快捷键函数,可以调用外部程序,检查是否成功,并返回输出。这个函数是<a href="http://docs.python.org/2/library/subprocess.html#subprocess.check_output" rel="nofollow">^{<cd5>}</a>:</p>
<pre><code>In[20]: [line.split() for line in subprocess.check_output("tasklist").splitlines()]
Out[20]:
[[],
['Image', 'Name', 'PID', 'Session', 'Name', 'Session#', 'Mem', 'Usage'],
['=========================',
'========',
'================',
'===========',
'============'],
['System', 'Idle', 'Process', '0', 'Services', '0', '24', 'K'],
['System', '4', 'Services', '0', '308', 'K'],
['smss.exe', '352', 'Services', '0', '1,628', 'K'],
['csrss.exe', '528', 'Services', '0', '7,088', 'K'],
['wininit.exe', '592', 'Services', '0', '6,928', 'K'],
['csrss.exe', '600', 'Console', '1', '79,396', 'K'],
['services.exe', '652', 'Services', '0', '19,320', 'K'],
...
</code></pre>