我有一个写入stderr的程序,没有写入stdout,我可以通过运行正确捕获:

program -badargs 2> stderr.txt

但是,在尝试使用Python的子进程时,我无法捕获输出 . 我想将stderr与stdout结合起来 . 我使用的命令是:

x = run('program -badargs', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
print((x.stdout).decode('utf-8'))

不幸的是,这只返回一个空字符串 .