通常我可以改变的值在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