Получение вывода и отправка ввода на сервер minecraft с помощью модуля подпроцесса - PullRequest
1 голос
/ 27 марта 2020

Я пытаюсь получить выходные данные сервера Майнкрафт, а также быть в состоянии отправить входные данные. У меня есть этот код:

pipe = subprocess.Popen(f"java -Xms{RAM} -Xmx{RAM} -jar server.jar nogui", cwd=os.path.join(os.getcwd(), "server"), stdout=subprocess.PIPE, stdin=subprocess.PIPE, shell=True, text=True)

while True:
    pipe.stdin.write(input("Enter a command: "))
    print("1")
    print(pipe.stdout.readline(), end="")
    pipe.stdout.flush()
    print("3")

И, кажется, каждый раз запускается ввод сервера, но затем, когда он полностью загружается и я набираю команду, он зависает. Как я могу предотвратить это?

1 Ответ

0 голосов
/ 28 марта 2020

Вы можете использовать что-то вроде этого:

with open("start.bat", "w+") as terminal:
    terminal.write("say Hello World!")
    output = terminal.readlines()
...