使用 python sh 模块,如何保存组合的 stdout 和 stderr?

With python sh module, how to preserve combined stdout and stderr?

使用 python sh 模块 (http://amoffat.github.io/sh/index.html),如何获得组合的标准输出和标准错误,就像我有 运行终端上的命令?

这是一个将 stdout 和 stderr 从 sh.ls() 重定向到进程 stdout 和 stderr 的示例。

import sh
import sys

sh.ls(_out=sys.stdout, _err=sys.stderr)

也可以将标准输出捕获到字符串中,如下所示

import sh
import sys

s = sh.ls()
print( s )

您还可以使用:

sh.ls(_err_to_out = True)

也可以使用_fg=True,例如

import sh

sh.ls("/", _fg=True)

输出:

/usr/bin/python3.6 /home/steve/test.py
bin
boot
dev
etc
home
initrd.img
initrd.img.old
lib
lib64
lost+found
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
vmlinuz
vmlinuz.old