В Python - как выполнить системную команду без вывода - PullRequest
8 голосов
/ 01 февраля 2009

Есть ли в Python встроенный метод для выполнения системной команды без отображения вывода? Я только хочу получить возвращаемое значение.

Важно, чтобы он был кроссплатформенным, поэтому простое перенаправление вывода в / dev / null не будет работать в Windows, и наоборот. Я знаю, что могу просто проверить os.platform и построить перенаправление самостоятельно, но я надеюсь на встроенное решение.

Ответы [ 2 ]

18 голосов
/ 01 февраля 2009
import os
import subprocess
subprocess.call(["ls", "-l"], stdout=open(os.devnull, "w"), stderr=subprocess.STDOUT)
2 голосов
/ 01 февраля 2009

Вы можете перенаправить вывод во временный файл и затем удалить его. Но есть также метод popen, который перенаправляет вывод непосредственно в вашу программу, чтобы он не отображался на экране.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...