Как выполнить команду оболочки через Python - PullRequest
6 голосов
/ 07 мая 2011

Я новичок в программировании на Python. Я хочу выполнить команду оболочки "at" из программы на Python. Может ли кто-нибудь из гуру Python помочь мне? Заранее спасибо.

Ответы [ 4 ]

8 голосов
/ 07 мая 2011

Для этой цели можно использовать модуль subprocess:

import subprocess
retcode = subprocess.call(["at", "x", "y", "z"])

Заменить x, y и z параметрами at.

4 голосов
/ 07 мая 2011

В качестве альтернативы, вместо использования subprocess.call (), вы можете использовать Popen для захвата вывода команды (а не кода возврата).

import subprocess
process = subprocess.Popen(['at','x','y','z'], stdout=subprocess.PIPE).communicate()[0]

Это может не относиться кКоманда, но это полезно знать.То же самое можно сделать с помощью stdin и stderr.Посмотрите документацию для более подробной информации.

3 голосов
/ 07 мая 2011
1 голос
/ 09 января 2015

subprocess.check_output представляется в Python 2.4+ удобной канонической функцией для выполнения команды и проверки выходных данных.Также возникает ошибка, если команда возвращает ненулевое значение (что указывает на ошибку).

Как и subprocess.call, check_output - это удобная оболочка для subprocess.Popen, поэтому вы можете предпочесть использование Popen напрямуюНо удобные обертки ... удобны в теории.

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