我正在尝试获取Minecraft服务器的输出,并且还能够发送输入。我有此代码:
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")
而且似乎每次都启动服务器的输入,但是一旦服务器完全加载并键入命令,它就会冻结。我该如何预防?
您可以使用类似这样的内容:
with open("start.bat", "w+") as terminal:
terminal.write("say Hello World!")
output = terminal.readlines()