我想从我从文本文件中读取的游戏(使用 python-chess 库)中顺序打印剩余的时钟时间(每次移动一个字符串)。
所以,假设我有一个包含以下动作的游戏的 pgn 文件......
- f3 { [%clk 0:05:00] } 1... e5 { [%clk 0:05:00] } 2. g4 { [%clk 0:04:49] } 2... Qh4# { [ %clk 0:04:48] }
...我想遍历动作并一一打印相应的时钟时间(使用for循环或类似的),显示
0:05:00
0:05:00
0:04:49
0:04:48
我知道如何迭代游戏的动作: 使用 python-chess 库打印单个动作
我将代码从那个答案更改为
pgn = open("test.pgn")
game = chess.pgn.read_game(pgn)
board = game.board()
for move in game.mainline_moves():
print(game.variation(move))
board.push(move)
但这没有用。在第一次迭代中,它确实打印了完整的变化(所有移动和时钟时间都在一行中)。在第二次迭代中,它引发了一个错误:
“KeyError:Move.from_uci('e7e5')”