Выполнение системных команд в python - PullRequest
3 голосов
/ 20 августа 2011

У меня есть опыт работы с perl для написания скриптов, что позволило мне легко выполнять команды linux с помощью обратных тиков.Мне было интересно, как я могу сделать этот Python?Есть ли специальный способ для захвата результата команды (вывода)?

спасибо:)

Ответы [ 2 ]

6 голосов
/ 20 августа 2011

Чтобы добавить ответ Уршрей, вот пример (Windows):

>>> import subprocess
>>> p = subprocess.Popen(['ping', '192.168.111.198'], stdout=subprocess.PIPE, st
derr=subprocess.PIPE)
>>> out, err = p.communicate()
>>> print out

Pinging 192.168.111.198 with 32 bytes of data:
Reply from 192.168.111.198: bytes=32 time<1ms TTL=128
Reply from 192.168.111.198: bytes=32 time<1ms TTL=128
Reply from 192.168.111.198: bytes=32 time<1ms TTL=128
Reply from 192.168.111.198: bytes=32 time<1ms TTL=128

Ping statistics for 192.168.111.198:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

>>> print err

>>> print p.returncode
0
2 голосов
/ 20 августа 2011

Вы ищете модуль подпроцесс , в частности, subprocess.check_call () и / или subprocess.check_output () команды.

...