Задать вопрос
@MrxAlexo

Как запустить несколько окон консоли через Python?

Мне необходимо создать еще одно окно cmd для вывода туда данных. Накидал небольшой класс, который использует
очереди для передачи в консоль текста, win32console для инициализации самой консоли и multiprocessing для запуска всего этого. Все отлично работает до того момента, пока не понадобится запустить еще одну консоль вне главного потока приложения, например, в функции, которая запущена через threading. Multiprocessing, судя по всему, не поддерживает этого.

Вот мой код:

class Console:

    def __init__(self) -> None:
        self.output = multiprocessing.Queue()

    def window(self) -> None:
        try:
            win32console.FreeConsole()
            win32console.AllocConsole()
            win32console.SetConsoleTitle(f'ConsoleWindow')

            while True:
                message = self.output.get()
                print(message)
        except Exception as e:
            raise e

    def log(self, message) -> None:
        self.output.put(message)

'''
Без проверки if будет ошибка:
The "freeze_support()" line can be omitted if the program
is not going to be frozen to produce an executable.
'''
if __name__ == '__main__':
    console = Console()
    multiprocessing.Process(target = console.window).start()
    console.log('Hello!')
  • Вопрос задан
  • 128 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Dzhigit
Начинающий прогер
Забей пока на эту идею, глянь ARGParser что это такое
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SPA2099 Москва
До 100 000 ₽
HR Prime Москва
от 300 000 до 3 800 000 ₽