【问题标题】:Is there a way to iterate over PyChess's read_game module?有没有办法遍历 PyChess 的 read_game 模块?
【发布时间】:2020-06-05 00:37:49
【问题描述】:

大家下午好!

我构建了一个管道,它获取本地保存的 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 的文档,似乎没有找到任何东西。话虽如此,我肯定会错过一些东西。

在这个领域有经验的人有什么想法吗?

【问题讨论】:

    标签: python loops iterator generator chess


    【解决方案1】:

    你好,我有同样的问题并这样做了:

    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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-20
      • 2016-01-16
      • 2016-05-03
      • 1970-01-01
      • 2014-12-19
      • 1970-01-01
      相关资源
      最近更新 更多