python调用shell

os.system(command) 返回command命令的退出状态。这实际上是使用C标准库函数system()实现的。这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果。

os.popen(command,mode) 返回command命令的执行结果。返回值是一个文件对象,可以读或者写(由mode决定,mode默认是’r’)。如果mode为’r’,可以使用此函数的返回值调用read()来获取command命令的执行结果。如a=os.popen(cmd).read()。还可以使用a.rstrip()进行去除换行符“n”。

commands.getstatusoutput(command) 返回command命令的执行状态和执行结果,返回的是一个元组。该方法其实也是对popen的封装。

演示1:

import os
line=os.popen('date -d -5day +"%Y%m%d"','r')
print line.read().rstrip()  #调用read()方法获取结果,调用rstrip()方法去除换行符

执行结果如下

[root@bear ~]# python 9.py
20130306  #如果不调用rstrip()方法,后面会多出一行空行

演示2:

import commands
line=commands.getstatusoutput('date -d -5day +"%Y%m%d"')  #获取5天前的日期
print line[0]  #输出命令执行状态
print line[1]  #输出命令执行结果
print type(line)
print type(line[1])

执行结果如下:

[root@bear ~]# python 8.py
0
20130306
<type 'tuple'>  #line是一个元组
<type 'str'>  #line[1]是一个字符串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值