проверьте os.system () ответить - PullRequest
0 голосов
/ 20 апреля 2011

Мне нравится использовать команду system () из модуля os. Есть ли способ проверить, дает ли команда мне ответ или нет? У меня есть код для завершения команды, если она не завершается в течение x секунд, но я хочу улучшить ее, чтобы завершить ее, если она не отвечает в течение x секунд.

спасибо!

Ответы [ 2 ]

3 голосов
/ 20 апреля 2011

Это зависит от того, что вы подразумеваете под «ответом».os.system() возвращает состояние завершения команды (которое является int, обычно 0 для успеха).Если этого недостаточно, взгляните на модуль подпроцесс .

1 голос
/ 20 апреля 2011

Вы не сказали, на какой ОС вы работаете.Увы, это отличается для Windows и Linux.Вот что я делаю:

import os

try:
    WEXITSTATUS = os.WEXITSTATUS
except AttributeError: # running on Windows
    def WEXITSTATUS(arg):
        return arg
    os.environ["HOME"] = os.environ["USERPROFILE"]


if WEXITSTATUS(os.system(cmd)) != 0:
    pass # bad return value
else:
    pass # good return value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...