有没有办法迭代 PyChess 的 read_game 模块?

Is there a way to iterate over PyChess's read_game module?

大家下午好!

我构建了一个管道,用于获取本地保存的 PGN 文件(包含国际象棋棋步、1.Nf3、2.c3 3. ... 的文件)并将它们转换为位板格式。

我发现的问题是,虽然 PyChess 包含一个可以读取 PGN 文件的模块:

first_game = chess.pgn.read_game(pgn)

这就像一个生成器,每当我想在 PGN 文件中获取下一个游戏时,我都必须调用该模块。

我保存了大约 50 个 PGN 文件,每个文件都有不同数量的游戏(1000-10000 之间的任何地方)。

我希望有一种有效的方法来循环遍历每个 PGN,而不必为范围 (0,10000) 求助于某些 Try-Except 块。

我查看了 PyChess 的文档,似乎没有找到任何东西。话虽如此,我肯定会错过一些东西。

有这方面经验的人 space 有什么想法吗?

您好,我遇到了同样的问题,并且这样做了:

pgn = open("Data/game_name.pgn")
games = []
while True:
    game= chess.pgn.read_game(pgn)
    if game is not None:
        games.append(game)
    else: 
        break

然后您可以遍历“游戏”列表中的每个游戏。