通过系统外壳运行命令
shellrun的Python项目详细描述
先看看envoy。envoy.run(command)等待完成 在返回输出之前,这不是包装long时所需要的 运行工具,输出一出现就需要, shellrun.run(command)不拦截输出-存在 单独的命令。
>>> import shellrun >>> r = shellrun.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
捕获输出 envoy-样式,使用 run_capture。stdout和stderr合并,因为 用户如何看待它:
>>> r = shellrun.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
结果对象的快速比较:
envoy.Response | shellrun.Result |
---|---|
.command | .command |
.status_code | .retcode |
.success | |
.output | |
.std_out | |
.std_err |
.success用法示例:
from shellrun 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)