我有一个 shell 命令行,将数据输出到不同于or的文件描述符。stdout
stderr
当我尝试时:
p1 = subprocess.Popen("some cmdline", shell=True, stderr=subprocess.STDOUT, stdout=subprocess.PIPE)
a,b = p1.communicate()
我发现 a 和 b 都是空的,并且在运行上面的两个 python 命令时,有一些 o/p(我试图捕获的日志)发送到控制台。
我知道我可能必须将 o/p 从 shell cmdline 重定向到 stdout 或 stderr,但看起来 shell cmdline 发送日志的 fd 每次都会更改。
我的问题是如何将 o/p 从上面的 shell 命令行捕获到 a 和/或 b 中?