python执行使用shell命令方法分享
作者:TonySmith 发布时间:2022-03-30 01:02:18
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)
用起来比较方便,根据实际要实现的功能使用吧
来源:104.116.116.112.58.47.47.119.119.119.46.99.110.98.108.111.103.115.46.99.111.109.47.116.111.110.121.115.109.105.116.104.47.112.47.55.54.57.49.52.49.48.46.104.116.109.108.


猜你喜欢
- 通过手动输入数据,将数据分成几部分存入数组中import osimport sysdef test(): bric
- 我就废话不多说了,大家还是直接看代码吧!绘制曲线:import timeimport numpy as npimport matplotli
- strip_tags定义和用法strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签。注释:该函数始终会剥离
- 我们都知道python的版本不同,在使用的时候就有所区别。鉴于我们推荐小伙伴们选择python3版本,所以这方面的区别了解的不是很多。就拿_
- 类的定义假如要定义一个类 Point,表示二维的坐标点:# point.pyclass Point: def __init__(
- vue安装less依赖一、安装less依赖npm install less less-loader --save二、修改webpack.ba
- 在 JavaScript 中对象和数组是引用类型,指向同一个内存空间,如果 prop 是一个对象或数组,在子组件内部改变它会影响父组件的状态
- 本文是OpenCV图像视觉入门之路的第11篇文章,本文详细的在图像形态学进行了图像处理,例如:腐蚀操作、膨胀操作、开闭运算、梯度运算、Top
- 我们将在下面的例子中使用这个 XML 文档。<?xml version="1.0" encod
- 1.相关基础知识介绍 在Vim中,有四个与编码有关的选项
- http库的使用要实现一个httpServer,首先我们需要先了解一下go语言的原生http库,通常会用到的包括以下几个内容:Body和Ge
- 一、创建一个线程通过实例化threading.Thread类创建线程import threadingdef func(s):print(s)
- 程序设计中我们时常需要检测用户输入是否正确,特别是姓名,地址等等是不是输入的汉字。那么,如何判断一个字符是不是汉字呢?其实在asp中至少有两
- 1. 案例取所有不为掌门人的员工,按年龄分组!select age as '年龄', count(*) as '人数
- select for update 这个是行级锁 当 commit或者rollback时,锁释放 记得打开事务,比如jdbc里面 setAu
- <?php /** 默认首页 **/ class DefaultController extends AppController {
- 如下:re.split(pattern, string, [maxsplit], [flags])pattern:表示模式字符串,由要匹配的
- 1,建路由;2,写方法;def fanyi(request): import requests import jso
- 闲着没事看到国外一个酷站欣赏的网站不错,不过他是用FLASH做的,于是想着用JS也写一个看看,技术有限写的不是很完美,还有一些小的BUG不知
- L2正则化原理:过拟合的原理:在loss下降,进行拟合的过程中(斜线),不同的batch数据样本造成红色曲线的波动大,图中低点也就是过拟合,