Перенаправление stdio из команды в ОС.system() в Python
Обычно я могу изменить stdout в Python, изменив значение sys.stdout
. Однако это, по-видимому, влияет только на утверждения print
. Итак, есть ли способ подавить вывод (на консоль) программы, которая выполняется с помощью команды os.system()
в Python?
4 ответа:
Вы можете рассмотреть возможность запуска программы через
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 Subprocess module