,使用os.system()方法os.system来执行cmd命令。cmd中输出的内容会直接输出到控制台,返回结果为0,表示执行成功。示例代码:#coding:utf-8importosos.system("ls")PS:os.system()方法是一种简单粗暴的执行cmd命令的方式,无法获取cmd的内容输出。PPS:调用shell脚本后,os.system()方法返回一个16位的二进制数,低位是杀死被调用脚本的信号号,高位是脚本的退出状态码,即即,脚本中的“exit1”代码执行后,os.system函数返回值高位为1,低位为0则函数返回值为0x0100,即转换为十进制的256。使用os.popen()方法os.popen()方法用于从命令打开管道。在Unix、Windows中有效。os.popen返回一个文件对象,与open打开文件的操作相同。popen()方法的语法如下:os.popen(command[,mode[,bufsize]])参数:command–要使用的命令。模式——模式权限可以是“r”(默认)或“w”。bufsize-指定文件所需的缓冲区大小:0表示无缓冲;1表示行缓冲;其他正值表示使用参数大小(近似值,以字节为单位)的缓冲区。负的bufsize表示使用系统的默认值,一般来说,对于tty设备来说,是linebuffered;对于其他文件,它是完全缓冲的。如果没有更改参数,则使用系统的默认值。示例代码:#coding:utf-8importos#popen返回文件对象,同打开操作f=os.popen(r"ls","r")l=f.read()print(l)f.close()返回值是文件对象的推荐处理方式:withos.popen(cmd,"r")asp:r=p.read()使用它,不需要显式写p.close().PS:os.popen()方法是非阻塞的。使用subprocess.Popen()python2.4版本后,提供subprocess模块??生成子进程,可以连接子进程的标准输入、输出、错误,也可以获取子进程的返回值.subprocess.Popen()定义如下:=None,env=None,universal_newlines=False,startupinfo=None,creationflags=0)其参数含义这里不再赘述。一个简单的示例代码:#coding:utf-8importsubprocesssp=subprocess.Popen("ls",shell=True,stdout=subprocess.PIPE)r=p.stdout.read()print(r)PS:subprocess提供了2种方式调用子程序。subprocess.call()是阻塞的,而subprocess.Popen()是非阻塞的。
