移动互联网技术的快速发展,为各大行业都提供了发展机遇,在市场的影响之下,Python语言变得更加火爆,渗透到各大领域,如今不少开发工做都会使用到Python,不过进行Python开发搭建框架的时候,每每须要命令进行操做,那么你知道如何用Python调用系统命令吗?小编为你们介绍一下。python
1. os.system()python3.x
这个方法直接调用标准C的system()函数,仅仅在一个子终端运行系统命令,而不能获取执行返回的信息。框架
>>> import os函数
>>> output = os.system(‘cat /proc/cpuinfo‘)ui
processor : 0spa
vendor_id : AuthenticAMDunix
cpu family : 21对象
... ...进程
>>> output # doesn‘t capture output开发
0
2. os.popen()
这个方法执行命令并返回执行后的信息对象,是经过一个管道文件将结果返回。
>>> output = os.popen(‘cat /proc/cpuinfo‘)
>>> output
>>> print output.read()
processor : 0
vendor_id : AuthenticAMD
cpu family : 21
... ...
>>>
3. commands模块
>>> import commands
>>> (status, output) = commands.getstatusoutput(‘cat /proc/cpuinfo‘)
>>> print output
processor : 0
vendor_id : AuthenticAMD
cpu family : 21
... ...
>>> print status
0
注意1:在类unix的系统下使用此方法返回的返回值(status)与脚本或命令执行以后的返回值不等,这是由于调用了os.wait()的缘故,具体缘由就得去了解下系统wait()的实现了。须要正确的返回值(status),只须要对返回值进行右移8位操做就能够了。
注意2:当执行命令的参数或者返回中包含了中文文字,那么建议使用subprocess。
4. subprocess模块
该模块是一个功能强大的子进程管理模块,是替换os.system, os.spawn*等方法的一个模块。
>>> import subprocess
>>> subprocess.Popen(["ls", "-l"]) # python2.x doesn‘t capture output
>>> subprocess.run(["ls", "-l"]) # python3.x doesn‘t capture output
>>> total 68
drwxrwxr-x 3 xl xl 4096 Feb 8 05:00 com
drwxr-xr-x 2 xl xl 4096 Jan 21 02:58 Desktop
drwxr-xr-x 2 xl xl 4096 Jan 21 02:58 Documents
drwxr-xr-x 2 xl xl 4096 Jan 21 07:44 Downloads
... ...
>>>