我正在尝试围绕著名的Go程序编写python包装器
GnuGo
我的方法(我不确定这是否可行)是使用子进程模块的Popen以GTP(go文本协议模式)启动GnuGo。在口译员看来是这样的
>>> import subprocess
>>> game = subprocess.Popen(['gnugo', '--mode', 'gtp'])
>>>
然后,解释器挂起,但不是完全挂起。如果我等待一段时间,我可以每隔三次左右的击键出现在命令行上。如果我使用
shell=True
参数,然后GnuGo以ASCII模式启动,如下所示:
A B C D E F G H J K L M N O P Q R S T
19 . . . . . . . . . . . . . . . . . . . 19
18 . . . . . . . . . . . . . . . . . . . 18
17 . . . . . . . . . . . . . . . . . . . 17
16 . . . + . . . . . + . . . . . + . . . 16
15 . . . . . . . . . . . . . . . . . . . 15
14 . . . . . . . . . . . . . . . . . . . 14
13 . . . . . . . . . . . . . . . . . . . 13
12 . . . . . . . . . . . . . . . . . . . 12
11 . . . . . . . . . . . . . . . . . . . 11
10 . . . + . . . . . + . . . . . + . . . 10
9 . . . . . . . . . . . . . . . . . . . 9
8 . . . . . . . . . . . . . . . . . . . 8
7 . . . . . . . . . . . . . . . . . . . 7
6 . . . . . . . . . . . . . . . . . . . 6
5 . . . . . . . . . . . . . . . . . . . 5
4 . . . + . . . . . + . . . . . + . . . 4
3 . . . . . . . . . . . . . . . . . . . 3
2 . . . . . . . . . . . . . . . . . . . 2
1 . . . . . . . . . . . . . . . . . . . 1
A B C D E F G H J K L M N O P Q R S T
black(1):
在GTP模式下,GnuGo启动并等待一些输入,而不向终端打印任何内容。
有人能解释一下为什么会发生这种情况吗?