Я предполагаю, что вы говорите о запуске команд из IPython, используя !
escape:
In[1]: !echo hello
hello
In[2]:
Используя Google, я нашел документацию, и нигде не упоминается о состоянии завершения захвата команды. Используя dir()
, я искал имя переменной, которая могла бы содержать эту информацию, и я ничего не нашел. Я пробовал синтаксис x = !ls
и x
получает список выходных строк из команды; там нет статуса выхода.
Короче говоря, я не думаю, что IPython даже собирает эту информацию. На этом этапе я хотел бы проверить исходный код IPython, чтобы попытаться выяснить что-нибудь еще.
Вы всегда можете просто запустить команду с помощью os.system()
и получить из нее статус выхода.
In[1]: !launch_eva
launch_eva: could not open AT Field
In[2]: import os
In[3]: exit_status = os.system("launch_eva")
launch_eva: could not open AT Field
In[4]: exit_status
3
In[5]:
Таким образом, мы видим, что команда launch_eva
возвращает состояние выхода 3, когда она не может открыть поле AT.
Похоже, это то, что IPython должен сохранять. Есть много маленьких скрытых переменных. Вы должны подать запрос на добавление функции по этому поводу.
ПРИМЕЧАНИЕ. Это было протестировано в IPython 0.10.1 в Ubuntu. В другом ответе «piotr» говорится, что код выхода будет записан в IPython 0.11, который скоро выйдет. Я клонировал исходный код из репозитория Git по адресу https://github.com/ipython/ipython.git и протестировал его с python ipython.py
; как сказал Петр, статус выхода сохраняется в переменной с именем _exit_status
.