python subprocess.call 管道到文件时出错

python subprocess.call error when pipe to file

我在 python 3.4 中遇到一个常见的错误,当我调用命令时,以以下形式说 net viewsubprocess.call("net view") returns error code 0(即成功)

但是当我做 subprocess.call("net view > targets.txt") 它 returns error code 1 (不成功)。

为什么这个错误出现在 python 中,有没有办法以类似的方式将输出通过管道传输到文件?

最简单的方法是将 stdout 重定向到一个文件对象:

from subprocess import check_call
with open("targets.txt","w" ) as f:
    check_call(["net", "view"], stdout=f)

check_call 将引发 any non-zero 退出状态的错误。