通过子流程模块获取输出并将输入发送到Minecraft服务器

问题描述 投票:1回答:1

我正在尝试获取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")

而且似乎每次都启动服务器的输入,但是一旦服务器完全加载并键入命令,它就会冻结。我该如何预防?

python server subprocess minecraft
1个回答
0
投票

您可以使用类似这样的内容:

with open("start.bat", "w+") as terminal:
    terminal.write("say Hello World!")
    output = terminal.readlines()
© www.soinside.com 2019 - 2024. All rights reserved.