介绍很多人讨厌bash脚本。每当我想做最简单的事情时,我都必须查阅文档。如何将函数的参数转发给子命令?如何将字符串分配给变量,然后将该字符串作为命令调用?如何检查两个字符串变量是否相等?如何拆分字符串并获得后半部分?etc.不是我找不到这些答案,而是我每次都得去查。然而,我们不能否认整个程序作为纯函数运行的能力,以及将一个程序的输出传递给另一个程序是多么自然。所以,我想知道,我们可以将bash的一些特性与Python结合起来吗?基础让我们从一个类开始。这是一个简单的方法,将其初始化参数保存到局部变量,然后使用subprocess.run延迟评估自身并保存结果。importsubprocessclassPipePy:def__init__(self,*args):self._args=argsself._result=Nonedef_evaluate(self):ifself._resultisnotNone:returnself._result=subprocess.run(self._args,capture_output=True,text=True)@propertydefreturncode(self):self._evaluate()returnsself._result.returncode@propertydefstdout(self):self._evaluate()returnsself._result.stdoutdef__str__(self):returnsself.stdout@propertydefstderr(self):self._evaluate()returnsself._result.stderr我们让它旋转:ls=PipePy('ls')ls_l=PipePy('ls','-l')print(ls)#<<
