【发布时间】:2015-05-16 19:25:49
【问题描述】:
此子流程代码在 Python 2 中完美运行,但在 Python 3 中无法正常运行。我该怎么办?
谢谢,
import subprocess
gnuchess = subprocess.Popen('gnuchess', stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
# Python 3 strings are Unicode and must be encoded before writing to a pipe (and decoded after reading)
gnuchess.stdin.write('e4\n'.encode())
while True:
L = gnuchess.stdout.readline().decode()
L = L[0:-1]
print(L)
if L.startswith('My move is'):
movimiento = L.split()[-1]
break
print(movimiento)
gnuchess.stdin.write('exit\n'.encode())
gnuchess.terminate()
【问题讨论】:
-
当它不起作用时,会发生什么?你有例外吗?如果是这样,请包括回溯。如果您有其他行为,请描述它。
标签: python subprocess