python学习之--调用shell脚本

原创 2015年07月10日 15:56:06

python调用Shell脚本,有很多种方法,下面给出了三个python中执行shell命令的方法

第一种方案:os.system

os.system返回脚本的退出状态码

现有一个shell脚本1.sh

#!/bin/sh
echo "hello world!!"
在python中调用shell脚本

import os

status = os.system('sh ~/svnrepos/1.sh')

print status

print status>>8

修改shell脚本,让脚本退出时返回状态码3


运行的结果为:

该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码,高位为脚本的退出状态码。

返回的结果都是0(使用位运算向右位移8位得到的结果就是高位值),代表代码正常退出。

我们如果需要的到脚本执行后返回的状态码,可以使用位运算得到。


第二种方案:os.popen

这种调用方法是通过管道的方式来实现的,函数返回一个file-like的对象,里面的内容是脚本输出的内容(可以简单的理解为echo的输出内容)

通过编写的shell脚本1.sh来尝试





第三种方案:使用commands模块

有三个函数:

1.commands.getstatusoutput(cmd)

使用os.popen()执行命令cmd,然后返回两个元素的元组(status, result)

cmd的执行方式是{cmd;} 2>&1,这样返回结果里面就包含了标准输出和标准错误

2.commands.getoutput(cmd)

只返回执行的结果,忽略返回值

3.commands.getstatus(file)

返回值

例子:



以上的调用方式根据实际的需要来选择对应的方式








版权声明:本文为博主原创文章,未经博主允许不得转载。

Python下调用Linux的Shell命令

有时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文件系统之类的。那么我们使用Python如何调用Linux的Shell命令?下面来介绍几种常用的方法: 1. os 模块...
  • my2010Sam
  • my2010Sam
  • 2014年01月15日 17:12
  • 79280

python运行shell命令四种方法

这里介绍一下python执行shell命令的四种方法: 1、os模块中的os.system()这个函数来执行shell命令 1 2 3 ...
  • guogaoan
  • guogaoan
  • 2014年07月05日 09:43
  • 2600

一个有用函数:python调用shell命令

在安装lxml时遇到问题,认识了这个函数,觉得挺有用,记录如下:def run_command(cmd, *args): if not cmd: return '' ...
  • lonfee88
  • lonfee88
  • 2010年11月28日 17:16
  • 4322

Python脚本中执行shell命令

如下图,其中最后一个0是这个命令的返回值,为0表示命令执行成功; popen():想要获取命令执行的结果,但是没有命令的执行状态。 commands:可以很方便的取得命令的输出(包括标准和错误输出)和...
  • zm714981790
  • zm714981790
  • 2016年12月29日 14:44
  • 1335

python执行shell命令的四种方法

python执行shell命令的四种方法,如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import os import platform...
  • taiyang1987912
  • taiyang1987912
  • 2015年08月25日 15:17
  • 3572

python调用shell命令之三大方法

preface: 忙于最近的任务,需要用到libsvm的一些命令,如在终端运行java svm_train train_file model_file. python subset.py file ...
  • u010454729
  • u010454729
  • 2015年06月25日 20:22
  • 1151

python中如何调用shell等外部的命令

python调用shell命令的方法有许多 1.1 os.system(command) 在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态。这实际上...
  • u012474716
  • u012474716
  • 2017年05月02日 10:27
  • 791

python中执行linux命令(调用linux命令)

转自:http://blog.csdn.net/laiahu/article/details/6697930 python中执行linux命令 python中执行linux命令: ...
  • shanliangliuxing
  • shanliangliuxing
  • 2013年04月16日 23:30
  • 14592

python调用Shell脚本:os.system(cmd)或os.popen(cmd)的区别

两者的区别是: os.system(cmd)的返回值只会有0(成功),1,2  os.popen(cmd)会吧执行的cmd的输出作为值返回。   python调用Shell脚本,有两种方法:o...
  • windone0109
  • windone0109
  • 2013年05月07日 16:31
  • 82056

python调用shell命令

python调用shell命令 1.1   os.system(command)        在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态。这...
  • n8765
  • n8765
  • 2015年12月28日 18:16
  • 734
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python学习之--调用shell脚本
举报原因:
原因补充:

(最多只允许输入30个字)