在Python重定向在使用os.system从命令标准输入输出()在Python重定向在使用os.s

2019-05-12 02:58发布

通常我可以改变的值在Python改变标准输出sys.stdout 。 然而,这似乎只影响到print报表。 那么,有没有什么办法可以抑制输出(控制台),即通过运行一个程序的os.system()在Python命令?

Answer 1:

您可以考虑通过运行程序subprocess.Popen ,与subprocess.PIPE沟通,然后推该输出在任何你想,但就是os.system只运行命令,而不是其他。

from subprocess import Popen, PIPE

p = Popen(['command', 'and', 'args'], stdout=PIPE, stderr=PIPE, stdin=PIPE)

output = p.stdout.read()
p.stdin.write(input)

更加灵活的在我看来。 你可能想看看完整的文档: Python的子进程模块



Answer 2:

在UNIX系统上,你可以重定向标准错误和标准输出到/ dev / null作为命令本身的一部分。

os.system(cmd + "> /dev/null 2>&1")


Answer 3:

重定向标准错误和标准输出。



Answer 4:

如果你想完全消除与Python程序启动控制台,您可以用.pyw扩展名保存。

我可能误解了问题,虽然。



文章来源: Redirecting stdio from a command in os.system() in Python