sh 模块—— Python 与 Shell 的混搭-危险纯友谊漫画

什么是 sh

sh是一个成熟的 subprocess 替代品,适用于 Python2.6 - 3.8, PyPy 和 PyPy3 ,允许你以函数的方式调用任何 Shell 程序。就像这样:

from sh import ifconfigprint(ifconfig("wlan"))

输出为:

wlan0   Link encap:Ethernet  HWaddr 00:00:00:00:00:00        inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0        inet6 addr: ffff::ffff:ffff:ffff:fff/64 Scope:Link        UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1        RX packets:0 errors:0 dropped:0 overruns:0 frame:0        TX packets:0 errors:0 dropped:0 overruns:0 carrier:0        collisions:0 txqueuelen:1000        RX bytes:0 (0 GB)  TX bytes:0 (0 GB)

注意了,这可不是 Python 的功能,这些都是通过解析  $PATH 变量运行的你的系统上的二进制命令,就和 Bash 一样,然后转换为 Python 中的函数。这样,所有系统中的程序都可以轻松的用 Python 调用了。

sh 库依赖 Unix 系统调用,所以只能工作在 Unix-like 操作系统上——比如 Linux, macOS, BSD, 等等,也就是说,不支持 Windows 。

安装pip install sh快速参考

传参

sh.ls("-l", "/tmp", color="never")

退出状态码

try:    sh.ls("/doesnt/exist")except sh.ErrorReturnCode_2:    print("directory doesn't exist")

输出重定向

sh.ls(_out="/tmp/dir_contents")with open("/tmp/dir_contents", "w") as h:    sh.ls(_out=h)from io import StringIObuf = StringIO()sh.ls(_out=buf)

参数嵌入

my_ls = sh.ls.bake("-l")# 等价my_ls("/tmp")sh.ls("-l", "/tmp")

管道

sh.wc(sh.ls("-1"), "-l")

子命令

# 等价sh.git("show", "HEAD")sh.git.show("HEAD")

后台进程

p = sh.find("-name", "sh.py", _bg=True)# ... 随便写点别的 ...p.wait()

No.5827 李小米[41P/253M]
2023-05-05
四号中型坦克,德语全称Panzerkampfwagen IV。四号中型坦克装有一门75毫米的短管坦克火炮,整车重量25吨,前期装甲30毫米,后期加到50毫米,最大行程300千米。面对同时期的盟军坦克,四号最大的优势是它装备了车载无线电。在盟军还在用旗语时,德军车长已经能在坦克中指挥战斗了。四号坦克,后方是一辆sdkfz系列装甲车四号坦克最初的设计思想是支援步兵,并协助当时德军的主力三号坦克。但德军发现,到了二战中期,三号坦克已经过时了,便对四号坦克进行了一系列的改装,变成了主力。二战期间,四号坦
2022-10-15
三天鱼干晒的差不多了,一家四口重新站在了炎阳殿的屋顶上,重新出现的身影快速吸引了仙门小鱼干的视线,三三定身阵一收,他们便齐齐倒地,酸痛还没缓过来就有人开始叫骂;“你们跟夷陵老祖是什么关系,竟然会此等妖术!” 允儿狠厉的目光直接落在叫骂者身上;“再说话杀了你!” 见百家方阵再次站好,三三先道;“各位正道名士,请睁大你们的眼睛看好了。” 允儿一声笛音后,炎阳殿后方竟然被怨气架出一吹笛姿态的人,随后还有一顶兰陵金氏的轿子。吹笛人是个还不起眼的新家主,秣陵苏氏宗主苏涉。轿子上下来的自然是金家少主
2022-10-17
「神楽坂真冬」黄粱美梦
2023-01-08
茜田千的漫画《再会了,美好时光》宣布日剧化。该作将由山下美月和铃木仁共同主演,预定于6月12日开始在东京电视台系列频道播出。
2023-05-21
「w百合欧皇子w」苍之纪元 莉莉艾尔 COS
2020-06-30
【Byoru】 Hinata [27P 36MB]
2022-01-06
杨幂和许凯的新剧《爱的二八定律》原定本月13日播出,岂料却在开播前2日却突然宣布因“技术问题”撤档,让大批粉丝傻眼,又传该剧因为剧情过度娱乐化“踩了不少红线雷区”,被临时撤档责令修改。许凯和杨幂在新剧《爱的二八定律》上演姐弟恋,剧中杨幂饰演的精英律师“秦施”,为了追求事业,和许凯饰演的佛系宅男“阳华”假结婚,后来才日久生情,预告中出现不少2人火热拥吻的片段,尚未开播就话题十足。许凯为新戏宣传,更是拉了秦岚、吴谨言、陈飞宇等一票好友帮忙宣传,如今都白忙一场,让粉丝心疼“印象中许凯是第1次拉这么多圈内好友为自
2022-10-12
8時のNHKニュースです。電力などの需要が高まる今年この冬に向けて、経済産業省は、LNG=液化天然ガスが不足電力会社やガス会社、ほかの事業者から融通を受けられるよう、国が仲介する新たな枠組みを整備することになりました。この枠組みでは、国が電力会社やガス会社から、LNGの調達や在庫の状況について、定期的に報告を受け、供給に余力のある事業者に対し、調達が困難な事業者への融通について、協力を要請します。また、LNGのタンクやパイプラインを共同で利用する会社に対しては、市域毎に、自主的に融通しあう体制を
2022-10-17
兔子Zzz不吃胡萝卜 伊人[25P-235MB]
2023-05-21