Я понимаю, что 7zip
имеет некоторую проблему, когда он маскирует свой прогресс из кода, который пытается вызвать его (не знаю почему).
Я видел здесь этот -bsp1
флаг должен показывать скрытый прогресс, но все равно ничего в Python:
from subprocess import Popen, PIPE
from time import sleep
cmd = Popen('7z.exe e D:\stuff.rar -od:\stuff -aoa -bsp1'.split(), stdout=PIPE, stderr=PIPE)
while cmd.poll() !=0: # Not sure this helps anything
out = cmd.stdout.read()
print(out)
sleep(1)
Выполнение команды 7z в командной строке дает мне хороший процент до тех пор, пока распаковка не будет завершена.
In Python, Я получаю распечатку прелюдии 7z (Путь, Тип и т.д. c.), А после этого просто b''
, пока я не нажму Ctrl-c
Как 7z узнает, что я звоню ему не из «настоящего " Терминал? Могу ли я как-то сделать так, чтобы это выглядело так, как будто я использую ctypes
и некоторые windows вызовы ядра / API?
Я видел термин «псевдотерминал», упомянутый в связи с этим, но я не убедитесь, что это актуально, и если это так, Windows ' ConPTY API скрытый