#python #shell #scripting #subprocess #stdout
#python #оболочка #сценарии #подпроцесс #стандартный вывод
Вопрос:
Вот очень конкретный вопрос, но я ищу немного более общее решение:
Я пишу сценарий оболочки на Python для помощи в различных задачах конфигурации, включая выполнение git clone
различных репозиториев. Когда я звоню git clone
, есть ли у меня хороший способ передать вывод git display непосредственно на терминал (индикаторы выполнения и т. Д.)?
Просто передача стандартного вывода подпроцесса в 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)
Я не ищу ответа «использовать git-python» — скорее, я ищу более общую технику, которую я могу применить к этой и другим задачам конфигурации.
Спасибо!
Ответ №1:
Попробуйте:
import os
os.system(mycommand)
Это работает для wget
, индикатор выполнения, который перезаписывает себя в одной строке на экране, работает правильно таким образом. Я полагаю, это сработало git
бы и для других.