python执行使用shell命令方法分享

1. os.system(shell_command)

直接在终端输出执行结果,返回执行状态0,1

此函数会启动子进程,在子进程中执行command,并返回command命令执行完毕后的退出状态,如果command有执行内容,会在标准输出显示。这实际上是使用C标准库函数system()实现的。

缺点:这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果。

os.system('cat /etc/passwdqc.conf')

2. os.popen()

打开一个与command进程之间的管道。这个函数的返回值是一个文件对象,可以读或者写(由mode决定,mode默认是'r')。如果mode为'r',可以使用此函数的返回值调用read()来获取command命令的执行结果。

os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。实际使用时视需求情况而选择。

tmp = os.popen('ls -l *').readlines()

3. commands.getstatusoutput(command)

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

(status, output) = commands.getstatusoutput("netstat -apn|grep {0} | awk '{{{1}}}' |xargs echo ".format(port, 'print $7'))
rr = re.compile(r'(\d+)/java')

op = rr.findall(output) #查找所有包含'java'的单词 

for i in range(len(op)):
  os.system("kill -9 {0}".format(op[i]))

#按照标志杀进程
os.system("ps -ef | grep {0} | awk '{{{1}}}' | xargs kill -9".format(key, 'print $2'))

实际使用时感觉 commands.getstatusoutput(command)用起来比较方便,根据实际要实现的功能使用吧

总结

以上就是本文关于python执行使用shell命令方法分享的全部内容,希望对大家有所帮助,感兴趣的朋友可以继续参阅本站:python通过socket实现多个连接并实现ssh功能详解、Python基础练习之用户登录实现代码分享、Python入门之三角函数全解【收藏】等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!

(0)

相关推荐

  • python中执行shell命令的几个方法小结

    最近有个需求就是页面上执行shell命令,第一想到的就是os.system, 复制代码 代码如下: os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令执行结果 0或者1,当然不满足需求了. 尝试第二种方案 os.popen() 复制代码 代码如下: output = os.popen('cat /proc/cpuinfo') print output.read() 通过 os.popen() 返回的是 file read 的对象,对其进行读取 read() 的

  • Python封装shell命令实例分析

    本文实例讲述了Python封装shell命令的方法.分享给大家供大家参考.具体实现方法如下: # -*- coding: utf-8 -*- import os import subprocess import signal import pwd import sys class MockLogger(object): '''模拟日志类.方便单元测试.''' def __init__(self): self.info = self.error = self.critical = self.deb

  • C++/Php/Python 语言执行shell命令的方法(推荐)

    编程中经常需要在程序中使用shell命令来简化程序,这里记录一下. 1. C++ 执行shell命令 #include <iostream> #include <string> #include <stdio.h> int exec_cmd(std::string cmd, std::string &res){ if (cmd.size() == 0){ //cmd is empty return -1; } char buffer[1024] = {0}; s

  • Python2.x利用commands模块执行Linux shell命令

    用Python写运维脚本时,经常需要执行linux shell的命令,Python中的commands模块专门用于调用Linux shell命令,并返回状态和结果,下面是commands模块的3个主要函数: 1. commands.getoutput('shell command') 执行shell命令,返回结果(string类型) 复制代码 代码如下: >>> commands.getoutput('pwd') '/home/oracle' 2. commands.getstatus(

  • python执行使用shell命令方法分享

    1. os.system(shell_command) 直接在终端输出执行结果,返回执行状态0,1 此函数会启动子进程,在子进程中执行command,并返回command命令执行完毕后的退出状态,如果command有执行内容,会在标准输出显示.这实际上是使用C标准库函数system()实现的. 缺点:这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果. os.system('cat /etc/passwdqc.conf') 2. os.popen()

  • 详解golang执行Linux shell命令完整场景下的使用方法

    目录 1. 执行命令并获得输出结果 2. 将stdout和stderr分别处理 3. 异步执行命令 4. 执行时带上环境变量 5. 预先检查命令是否存在 6. 两个命令依次执行,管道通信 7. 按行读取输出内容 8. 获得exit code 1. 执行命令并获得输出结果 CombinedOutput() 执行程序返回 standard output and standard error func main() { cmd := exec.Command("ls", "-lah

  • python 执行终端/控制台命令的例子

    如下所示: import os os.system() os.popen().read().strip() #上面2种方法 是python 执行终端/控制台 命令的常见方法 #os.system('ping www.baidu.com') 执行成功 返回 0 #ping = os.popen('pint www.baidu.com').read().strip() 返回输出结果 #注:os.system() 执行完成 会关闭 所以当执行后续 命令需要依赖前面的命令时,请将多条命令写到一个 os.

  • python执行系统命令4种方法与比较

    Python中执行系统命令常见的方法有以下4种 注意:以下实例代码在Python3.5下运行通过. 一.os.system方法 os.system(cmd) 在子终端运行系统命令,可以获取命令执行后的返回信息以及执行返回的状态 >>> import os >>> os.system('date') 2018年 4月 8日 星期日 19时29分13秒 CST 0 #运行状态号,0表示正确 执行后返回两行结果,第一行是结果, 第二行是执行状态信息 二.os.popen方法

  • python调用bash shell脚本方法

    目录 1. os.system() 1.1. demo 2. os.popen() 2.1 demo 3. commands模块 4. subprocess 4.1 demo 1. os.system() help(os.system) 1.1. demo os.system(command):该方法在调用完shell脚本后,返回一个16位的二进制数, 低位为杀死所调用脚本的信号号码,高位为脚本的退出状态码, 即脚本中exit 1的代码执行后,os.system函数返回值的高位数则是1,如果低位

  • python执行get提交的方法

    本文实例讲述了python执行get提交的方法.分享给大家供大家参考.具体如下: import sys, urllib2, urllib def addGETdata(url, data): """Adds data to url. Data should be a list or tuple consisting of 2-item lists or tuples of the form: (key, value). Items that have no key shoul

  • python执行js代码的方法

    什么是js代码混淆? 正常代码 我们现在看一段js代码,代码逻辑很简单,就是拼接时间返回. function formatDate(now) { var now = new Date(1230999938); var year=now.getFullYear(); var month=now.getMonth()+1; var date=now.getDate(); var hour=now.getHours(); var minute=now.getMinutes(); var second=

  • Python执行js字符串常见方法示例

    目录 方法 1--js2py 2--execjs 3--execjs 方法 执行大型js时有点慢 特殊编码的输入或输出参数会出现报错,解决方法: 可以把输入或输出的参数用base64编码一下.base64都是英文和数字,没有特殊字符了 1--js2py pip insatll js2py # 获取执行JS的环境 context = js2py.EvalJs() # 加载执行 context.execute('放JS字符代码') 2--execjs import execjs print(exec

  • Python解析toml配置文件的方法分享

    目录 楔子 举个例子 注释 键值对 字符串 整数 浮点数 布尔值 日期 数组 表 行内表 表数组 楔子 上一篇文章我们介绍了 yaml,虽然 yaml 的表达能力已经很丰富了,但 GitHub 觉得还是不够优雅,所以鼓捣出了一个 toml.toml 有着比 yaml 更简洁的语法,它的目标就是成为一个最简单的配置文件格式. 然后 Python 解析 toml 文件需要使用一个名字也叫 toml 的库,直接 pip install toml 即可. 举个例子 有了 ini 和 yaml,相信 to

  • Ruby中执行Linux shell命令的六种方法详解

    在Ruby中,执行shell命令是一件不奇怪的事情,Ruby提供了大概6种方法供开发者进行实现.这些方法都很简单,本文将具体介绍一下如何在Ruby脚本中进行调用终端命令. exec exec会将指定的命令替换掉当前进程中的操作,指定命令结束后,进程结束. 复制代码 代码如下: exec 'echo "hello world"' print 'abc' 执行上述的命令,结果如下,我们可以看到没有abc的输出,可以看出来,在执行echo "hello world"命令后

随机推荐