我从终端运行的python脚本通过opensource executable在mac上运行mono。
没有脚本,界面就是命令行。为了以编程方式与程序交互,我将stdin
,stdout
和stderr
设置为PIPE
,然后我尝试进行通信。 stdout.readline()
工作正常,但在等待最后一次输入时停止,我可以通过线程学习如何使用。我不知道如何写入终端作为程序的输入。我使用过stdin.write()
和communicate()
但没有任何效果。我认为问题可能是项目特有的,幸运的是,它是开源的。不过,我不确定如何利用这一点。
proc = subprocess.Popen('mono MinecraftClient.exe ' + emailAddress + ' ' + passw + ' ' + ipAddress, shell=True, stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
while(True):
input = proc.stdout.readline()
print input
print proc.communicate(input + "\n")[0]