python subprocess.communicate останавливает мою программу после выполнения команды - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь создать программу для управления сервером Minecraft, у меня есть интерфейс tkinter с кнопкой для запуска сервера, затем вывод читается и распечатывается.

def output_reader(self, proc):
    for line in iter(proc.stdout.readline, b""):
        print("line: {0}".format(line), end="")

def launch(self, path)
        self.process = Popen(path, shell=True, stdin=PIPE, stdout=PIPE, text=True)

        self.t = threading.Thread(target=self.output_reader, args=(self.process,))
        self.t.start()

Эта часть работает и сервер запускается. Существует кнопка сохранения, которая передает команду на сервер, но после нажатия интерфейс tkinter зависает, пока сервер продолжает работать в фоновом режиме, но прекращает вывод текста. Программа не печатает «test»

def save(self, cmd):
    self.proc = self.process.communicate(cmd)
    print("test)

Это проблема с моим пониманием модуля подпроцесса или, скорее всего, проблема где-то еще в моем коде? Извините за мою неопытность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...