Лучшим инструментом для этой работы, конечно же, является pv
.Если у вас нет прав на глобальную установку, вы все равно сможете собрать и установить его из исходного кода (без sudo) только в своем пользовательском каталоге, поскольку он устанавливается с помощью autoconf / automake, поэтому вам просто нужноЗапустите ./configure
с --prefix=$HOME/bin
перед созданием и установкой.
Однако, если вы действительно хотите написать скрипт на Python, нужно рассмотреть две части: сам индикатор выполнения и данные для индикатора выполнения.
Для самого индикатора выполнения, @Mntfr уже упомянул вопрос , который охватывает это.
Для получения информации о индикаторе выполнения вам потребуется какой-либо способ отслеживания того, сколько данных было записано до сих пор.Таким образом, либо вам нужно писать меньшие суммы за раз (например, только 5 МБ, прежде чем обновлять индикатор выполнения), либо вам нужно будет асинхронно отслеживать размер выходного файла и соответственно обновлять индикатор выполнения.Первый метод может быть медленнее в целом (так как он включает в себя запуск и остановку записи), но второй метод, вероятно, сложнее (так как он требует асинхронности в вашем скрипте, что не очень интересно реализовать в Python, если вы просто не напишите два скрипта и не запуститеих бок о бок).Эти две идеи должны дать вам представление о том, как реализовать то, что вы ищете.