python执行shell命令的几种方法

  • os.system(command)

    类似c语言里的system函数,只能执行命令,无法获取输出,返回值跟c类似,将shell的返回值放到了8-15位

  • os.popen(command [, mode='r' [, bufsize]])

    也跟c语言类似,c语言返回的是一个文件流指针,python返回的是一个文件对象,可以用read方法读取文件对象的内容,但无法获取返回值

  • commands.getstatusoutput(command)

    使用commands.getstatusoutput函数执行command命令并返回一个元组(status,output),分别表示command命令执行的返回状态和执行结果。对command的执行实际上是按照{command;} 2>&1的方式,所以output中包含控制台输出信息或者错误信息。output中不包含尾部的换行符。

  • subprocess模块的管道Popen类.这个Popen是打算用来替代os.popen的方法,有点复杂,有兴趣可以自己学习一下:

print subprocess.Popen("echo Hello World"shell=True,stdout=PIPE).stdout.read()
  • subprocess.call(*popenargs, **kwargs)
    它的基本用法和上面的Popen类参数一致,但是它会等待命令结束后才会返回程序
return_code = subprocess.call("echo Hello World", shell=True)
  • os模块里也有C语言里fork/exec/spawn方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值