os.system
不是通常的 Python 命令。相反,它“调用”到更广泛的操作系统:os.system(foo)
与进入命令行并键入foo
. 这是从 Python 脚本执行任何程序的一种快速而肮脏的方式。
当然,有一些非快速和肮脏的方式来做到这一点。它们位于subprocess
模块中,允许您启动任意子进程(其他程序)并与之通信,向其发送数据并接收其输出。
里面有一个快捷功能,它会调用一个外部程序,检查它是否成功,然后返回输出。该功能是subprocess.check_output
:
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'],
...