【发布时间】:2016-03-30 18:04:50
【问题描述】:
我正在使用 Windows,并且正在为 Minecraft 服务器寻找使用 Python 的处理程序或包装程序,以便我可以自动输入命令而无需用户输入。我在网站上搜索了很多问题,只找到了一半的答案(至少在我的情况下)。我相信我将需要使用 subprocess 模块,但在我尝试 Popen 函数时无法决定使用哪个模块。我找到了针对我的案例修改的答案:
server = Popen("java -jar minecraft_server.jar nogui", stdin=PIPE, stdout=PIPE, stderr=STDOUT)
while True:
print(server.stdout.readline())
server.stdout.flush()
command = input("> ")
if command:
server.stdin.write(bytes(command + "\r\n", "ascii"))
server.stdin.flush()
这确实以某种方式起作用,但每次输入命令时只会打印一行,这是行不通的,我为改变这一点所做的所有努力最终导致程序无法执行任何其他操作,而只是读取。这不是一个重复的问题,因为类似问题中的答案都无法对我有足够的帮助。
【问题讨论】:
标签: python controller subprocess wrapper minecraft