继续我们的有趣的 Python 库之旅 ——
一个小小的库,或许能避免重复造轮子
一个不显眼的功能,也许能在关键时刻拯救我们
一个出乎意料的方法,或许能激发更多创意灵感
一个独特的技能,也许能成为我们的守护神……
在工作中有没有遇到过需要在 Python 脚本中执行系统级别命令的情况?
也许你尝试过直接使用 Python 的 subprocess
模块,但是感到太过繁琐和不够直观。
今天,我要介绍的 Envoy 库就是为了让这个过程变得简单而优雅。
无论是运行一个简单的脚本还是创建一个复杂的命令管道,Envoy 都能够以人性化的方式简化操作。
Envoy 简介
Envoy 是由知名的 requests
库作者 Kenneth Reitz 开发的。
它提供了一种人性化的方法来快速执行和管理子进程。
Envoy 真正的魅力在于,它让命令执行变得简洁,尤其是在需要执行短期的系统命令时,其方便性远胜 requests
库。
与直接使用原生 subprocess
模块相比,Envoy 则更加直观和易于使用。
项目地址:https://github.com/kennethreitz/envoy
安装 Envoy
由于 Envoy 并不是 Python 的标准库,我们需要使用 pip 来进行安装:
pipinstallenvoy
基本用例
执行命令
使用 Envoy 执行系统命令就像在 Shell 环境下操作一样简单。以下是一个基本示例:
importenvoy #运行'gitconfig'命令 r=envoy.run('gitconfig') print(r.status_code)#输出:129 print(r.std_out)#输出:'usage: git config [options]' print(r.std_err)#输出:''
通过这样简单的几行代码,我们就能执行命令并获取结果。
管道操作
Envoy 还支持 Shell 式的管道操作。你可以很容易地将一个命令的输出作为另一个命令的输入:
r=envoy.run('uptime|pbcopy') print(r.command)#输出:'pbcopy' print(r.status_code)#输出:0 print(r.history)#输出:[<Response 'uptime'>]
这种管道操作保留了历史记录,所以你可以轻松追踪到整个命令序列。
高级特性
超时与数据管道
Envoy 还允许你设定超时时间,并能将数据作为命令的输入,这对于需要交互操作的命令来说非常有用:
r=envoy.run('gitconfig',data='user.name=FooBar',timeout=2) #检查操作是否在规定时间内完成 ifr.status_code==0: print("命令执行成功!") else: print("命令执行失败或超时!")
实践挑战
如你所见,Envoy 是一个功能强大而又简洁的库。为了更好地掌握它,我提议你尝试以下几个练习:
-
尝试在你的 Python 脚本中用 Envoy 运行一些简单的系统命令。
-
设计一个命令序列并使用 Envoy 的管道功能来执行它们。
-
对于可能需要较长时间执行的命令,尝试加上超时参数,并处理超时情况。
总结
Envoy 库的设计理念是简化和人性化。它让执行系统命令变得像写 Python 代码一样自然流畅。
虽然 Kenneth Reitz 还开发了 Delegator.py
作为 Envoy 的一个代替品,但 Envoy 依旧是一个很好的选择去执行系统命令和创建命令管道。
花一点时间熟悉 Envoy,你会发现它或许正是你需要的。
以上就是“Envoy —— 一个经典的 Python 库”的全部内容,希望对你有所帮助。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。