Сценарии оболочки в Python: вызов программ, использующих проклятия и т. Д. - PullRequest
4 голосов
/ 18 октября 2011

Вот очень специфический вопрос, но я ищу немного более общее решение :

Я пишу сценарий оболочки на Python, чтобы помочь в различных задачах конфигурации, включаявыполнение git clone различных репозиториев.Когда я звоню git clone, есть ли хороший способ для меня выводить вывод дисплея git прямо на терминал (индикаторы выполнения и т. Д.)?

Простая передача stdout подпроцесса в sys.stdout не обрезает его, потому что поведение git предполагает перезапись поверх той же части терминала, чтобы показать прогресс.Так что это не совсем хорошо:

import sys, subprocess
process = subprocess.Popen("git clone --recursive https://github.com/my/repo.git",
                           shell=True,
                           stdout=sys.stdout,
                           stderr=subprocess.PIPE)

Я не ищу ответа "use git-python " - скорее, я ищу более общееТехника, которую я могу применить к этой и другим задачам конфигурации.

Спасибо!

1 Ответ

2 голосов
/ 18 октября 2011

Попробуйте:

import os
os.system(mycommand)

Это работает для wget, индикатор выполнения, который перезаписывается на одной строке на экране, работает правильно таким образом.Полагаю, это сработает и для git, и для других.

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