@bezvozni

Как возвращать промежуточный результат?

Я хочу, импортировать самописный скрипт А в скрипт Б.
Сейчас всю информацию о процессе срипт А пишет в консоль.
Как скрипту А передавать промежуточные результаты (информацию о процессе) в скрипт Б?
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Перепишите скрипт A так, чтобы он позволял сообщать сведения о прогрессе иначе. Упрощенный пример:

Было:
import time

for i in range(100):
    time.sleep(1)
    print($"{i}%")


Стало:
import time

def run_script(on_progress):
    for i in range(100):
        time.sleep(1)
        on_progress(i)

if __name__ == '__main__':
    run_script(lambda i: print($"{i}%"))


Тогда в другом скрипте будет:
from script_a import run_script

def my_progress(i):
    pass # показываешь прогресс скрипта

run_script(my_progress)


Пример очень упрощённый, если скрипт выдаёт несколько видов информации, то либо on_progress будет иметь несколько параметров, либо потребуется несколько таких функций.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Viji
@Viji
DevOps Engineer
копайте отсюда...

https://code-maven.com/python-capture-stdout-stder...

по любому скрипт Б должен запускать скрипт А как subprocess
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы