Анализ выходных данных apt-get install для индикатора выполнения

StackOverflow https://stackoverflow.com/questions/1692082

Вопрос

Я работаю над простым скриптом Python с графическим интерфейсом для выполнения некоторых простых задач в системе.Часть этой работы включает в себя apt-get install для установки некоторых пакетов.

Пока это происходит, я хочу отобразить индикатор выполнения, который должен обновляться по мере выполнения загрузки, используя небольшой процент, показанный в интерфейсе apt-get в терминале.

НО!Я не могу найти способ получить информацию о ходе выполнения.Передача или перенаправление выходных данных apt-get просто выдает статические строки, которые показывают сообщение "завершенная загрузка" для каждого пакета, и то же самое для чтения через subprocess.Popen() в моем сценарии.

Как я могу прочитать из выходных данных apt-get, чтобы получить процент загруженного файла?

Это было полезно?

Решение

Как я часто говорил, используйте перспективный, не подпроцесс и т.д., для запуска подпроцессов, когда вам нужно получать их непрерывный вывод.pexpect обманывает подпроцесс, заставляя его поверить, что он запущен на терминале, поэтому подпроцесс будет выдавать именно тот вид вывода, который он выдавал бы на реальном терминале...и вы можете поймать это и преобразовать в любой необычный результат, который вы хотите!-)

Другие советы

Вместо того чтобы анализировать выходные данные apt-get, вы можете использовать python-apt для установки пакетов.AFAIK it также имеет модули для отчетности о прогрессе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top