2013-09-03 4 views
1

Я попытался написать функцию, содержащую команду bash. Я хочу назначить вывод команды переменной в моем python Я имею в виду, что функция gitCheck находит каталог моего репозитория git и назначает его gitRep, но мне дает только 0. Есть ли кто-нибудь, кто мог бы знать, как я могу это сделать ? Заранее спасибоПолучение вывода терминала из команды python

def gitCheck(): 
reference_repositories_path="cat $HOME/.git_reference_repositories | sed 's/GIT_REFERENCES_PATH=//'" 
gitRep=os.system(reference_repositories_path) 
print gitRep 

выходного должен быть /home/gwapps/Desktop/GIT_REFERENCE_REPOSITORIES , но это дает мне 0

ответ

1

Вы получаете статус выхода. В соответствии с os.system()docs:

В Unix, возвращаемое значение является статус выхода процесса, закодированной в в формате, заданном для ожидания().

...

Модуль подпроцесс обеспечивает более мощные средства для нереста новых процессов и получения их результатов; с использованием этого модуля предпочтительнее использовать эту функцию.

Итак, если вы хотите получить вывод команды, используйте модуль subprocess. Есть тонны примеров здесь на SO, например .:

Смежные вопросы