上周去三亚度假,玩的还行,价格也还行,如果你是临时起意去旅游的话,可以选择途牛自助,如果是长线计划,那么强烈推荐你用去哪儿+美团+大众的方案,巨靠谱 ! 在三亚这几天,一直在海边寻找比基尼,过程中被晒伤了,回北京浑身特么的痒痒….  睡不着,就写了个基于subprocess的封装模块…  

     因为后续的项目会大量的用python调用java的东西,python的系统调用模块,最好用的肯定是subprocess了,但对于我这种喜欢造轮子的人,肯定希望subprocess使用起来更加的舒服方便,需要说明的是subprocess在实现高级功能时候,有些掉链子,比如超时的功能,subprocess本身是不提供的,需要我们自己来绕着实现。另外subprocess也没有合理的管道输出功能,我自己封了一层,里面是yield返回值,这样你就可以用迭代器来获取每次的实时输出了。 

关于python easyrun模块介绍,文章的原文地址是,http://xiaorui.cc/?p=1941

项目名字

easyrun


介绍

一个subprocess模块的封装,让python更加方便地进行各种系统调用。

[开发easyrun的环境是python3哦]


安装

pip安装


源码安装


使用方法

只单纯的执行,然后返回linux run code和执行状态
>>> import easyrun
>>> r = easyrun.run(‘uptime’)
 04:06:37 up 2 min,  1 user,  load average: 0.20, 0.19, 0.08
>>> r.output
>>> r.success
True
>>> r.retcode
0
捕捉所有的执行结果
>>> r = easyrun.run_capture(‘uptime’)
>>> r.output
‘ 04:07:16 up 2 min,  1 user,  load average: 0.11, 0.17, 0.08\n’
>>> r.success
True
>>> r.retcode
0
把输出的结果精简过,maxlines是控制行数
print(run_capture_limited(‘ls’, maxlines=2).output)
easyrun example usage:
from easyrun import run_capture

r = run_capture(‘ls -la’)
if r.success:
    print(r.output)
else:
    print(“Error: ‘%s’ exit code %s” % (r.command, r.retcode))
    print(”         …”)
    # print last three lines of output
    for line in r.output.splitlines()[-3:]:
        print(”       %s” % line)

上面只是讲了easyrun的简单实用方法,另外关于subprocess的超时、异步、实时输出的实用方法,我测试例子还没有写,有时间我会补充上去的。 



对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!
{ 2000人qq大群内有各厂大牛,常组织线上分享及沙龙,对高性能及分布式场景感兴趣同学欢迎加入该QQ群 }

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!
暂无相关产品