python调用shell结果输出-python调用shell脚本的返回值处理

python调用shell脚本的返回值处理几种方式:

shell脚本准备 hello.sh:

#! /usr/bin/ssh

echo "hello world!"

echo "succeed";

1. 使用os.system返回执行状态值

#------------------------------------------

#一、执行shell命令的状态返回值

#------------------------------------------

v_return_status=os.system( "sh hello.sh")

print "v_return_status=" +str(v_return_status)

输出结果:

hello world!

succeed

v_return_status=0

2. 使用os.popen返回结果

无返回终端,只打印输出内容

#------------------------------------------

#二(一)、获取shell print 语句内容一次性打印

#------------------------------------------

p=os.popen("sh hello.sh")

x=p.read()

print x

p.close()

#------------------------------------------

#二(二)、获取shell print 语句内容,按照行读取打印

#------------------------------------------

p=os.popen("sh hello.sh")

x=p.readlines()

for line in x:

print "ssss="+line

输出结果:

hello world!

succeed

ssss=hello world!

ssss=succeed

3. 使用commands.getstatusoutput() 一个方法就可以获得到返回值和输出,非常好用。

#------------------------------------------

#三、尝试第三种方案 commands.getstatusoutput() 一个方法就可以获得到返回值和输出,非常好用。

#------------------------------------------

(status, output) = commands.getstatusoutput("sh hello.sh")

print status, output

输出结果:

0 hello world!

succeed

你可能感兴趣的:(python调用shell结果输出-python调用shell脚本的返回值处理)