не могу вывести stdout другой программы

srsirius

Новичок
Пользователь
Сен 30, 2020
2
1
3
Дамы и господа!!!

Мучает меня вопрос уже несколько дней. Обыскался в интернете.

Есть код:

Код:
system = subprocess.Popen([r"C:\Program Files\7-Zip\7z.exe", "t", filename, f"-p{password}"],
                          stderr=subprocess.STDOUT, stdout=subprocess.PIPE)
output = str(system.communicate()[0])

Тут я запускаю 7zip и хочу увидеть его работу, он когда работает в cmd (не из питона) - показывает шкалу выполнения в процентах и потом выводит данные которые у меня в output .

Как мне из питона заставить показать как работает 7zip?
 

Вложения

  • 7zip.png
    7zip.png
    23,8 КБ · Просмотры: 4
Последнее редактирование:

srsirius

Новичок
Пользователь
Сен 30, 2020
2
1
3
Дамы и господа!!!

Мучает меня вопрос уже несколько дней. Обыскался в интернете.

Есть код:

Код:
system = subprocess.Popen([r"C:\Program Files\7-Zip\7z.exe", "t", filename, f"-p{password}"],
                          stderr=subprocess.STDOUT, stdout=subprocess.PIPE)
output = str(system.communicate()[0])

Тут я запускаю 7zip и хочу увидеть его работу, он когда работает в cmd (не из питона) - показывает шкалу выполнения в процентах и потом выводит данные которые у меня в output .

Как мне из питона заставить показать как работает 7zip?


Нашел ответ:

Дополнительный модуль subpiper

Код:
from subpiper import subpiper


def my_stdout_callback(line: str):
    print(f'STDOUT: {line}')


def my_stderr_callback(line: str):
    print(f'STDERR: {line}')


retcode = subpiper(cmd=r'C:\Program Files\7-Zip\7z.exe x D:\backup\1.7z -oD:\test -aoa',
                   stdout_callback=my_stdout_callback,
                   stderr_callback=my_stderr_callback)
 
  • Мне нравится
Реакции: MonaCCi

Форум IT Специалистов