質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.75%

  • Python 3.x

    5275questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

python-shogiで棋譜の読み込みができない

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 208

hershel

score 4

 前提・実現したいこと

「将棋AIで学ぶディープランニング」という本を元にpython-shogiを用いたプログラムを作っていましたが途中で本と挙動が変わりました。
棋譜をテキストファイルに変換した後kifu=shogi.CSA.Parser.parse_file(filepath)[0]
とすると棋譜を読み込むような挙動をする(のですがその後kifu[‘moves’]を見てもkifuが定義されてないと言われます)

棋譜を読み込んでいると思っていましたが出ていたのはエラーメッセージでした
申し訳ありません。

 発生している問題・エラーメッセージ

Pythonista3 でのメッセージ
Traceback (most resent call last):
 File “<string>”, line1, in <module>
 File “/private/var/mobile/Contains/Shared/AppGroup/C12A453E-BFB5-4B35-98DE-3D28DD25CBB2/Pythonista3/Document/site-packages/shogi/CSA.py”, line 67, inparse_file
  return Parser.parse_str(f.read())
 File “/private/var/mobile/Contains/Shared/AppGroup/C12A453E-BFB5-4B35-98DE-3D28DD25CBB2/Pythonista3/Document/site-packages/shogi/CSA.py”, line 125, inparse_str
raise ValueError(‘Invalid line {0}: {1}’.format(line_no, line))
ValueError: Invalid line 1 2016/ wdoor+floodgate-600-10F+SILENT_MAJORITY_i7-4510U+Azul_demo_pentium_1c+20160723140002.csa

 該当のソースコード

テキスト化した棋譜があるとこと同じディレクトリで,インタープリタに入力しています


import shogi
import shogi.CSA
kifu = shogi.CSA.Parser.parse_file(‘kifulist_test.txt’)[0]

 試したこと

shogi.CSAではなくshogi.KIFで試したてkifu[‘moves’]と入力したところ[]と出力されました。
またkifuと入力すると
{‘name’:[None, None], ‘sfen’: ‘lnsgksnl/1r5b1/ppppppppp/9/9/9PPPPPPPPP/1B5R1/LNSGKGSNL b-1’, ‘moves’:[], ‘win’:None}
と出力されました。

 補足情報(FW/ツールのバージョンなど)

使用しているのはWindows10のAnaconda3とiPadのpythonista3です。
両方で同じ挙動を示しました。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • hershel

    2018/05/01 01:04

    すいません直前の2つについて削除の連絡をします。

    キャンセル

  • キャンセル

  • キャンセル

回答 1

checkベストアンサー

+3

とりあえず、

print(shogi.CSA.Parser.parse_file('棋譜があるファイル')[0])


で返ってるかどうかは確認できます。

それはそうとして、name kifu is not definedが出ちゃったということは穏やかならぬ状況です。変数が定義できていないというエラーです。該当のソースコード走らせたら、そうはならないと思うんですけれども。

あるいは、プログラムの問題以前に実行環境の問題かも。どうやってプログラムを実行していますか? そのへんに解決への糸口があるかもしれません。

あと、「Import」はinvalid syntaxになりませんか? 色々不思議です。

もし他にエラーや警告が出ているなら、質問文を編集をしてすべて載せてください。name kifu is not definedのエラーもtraceback含めすべて載せることをおすすめします。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/01 13:20

    Importはimportの間違いです。申し訳ありません。
    該当のコードを入力したところ、kifu=…と入力した時と同じエラーメッセージがでました。
    これを棋譜を読み込んでると勘違いしていました。
    混乱させてしまい申し訳ありません
    エラーメッセージについては質問文内に編集で追加を行いました。

    キャンセル

  • 2018/05/01 13:51 編集

    ファイルがcsa形式にちゃんと変換できているか確認してください。あと文字コードとかも(utf-8が望ましいと思います)
    http://www.computer-shogi.org/wcsc12/record.html
    変なところが思いつかなかったら最初の10行くらい貼ってみてくれても構いません。

    キャンセル

  • 2018/05/01 22:36

    棋譜のあるファイルとしているところで誤ってcsaではなくテキスト化したものを入力していました
    csaで入力したところ問題なく読み込めました
    初歩的なミスでお手数をかけてしまい申し訳ありません
    ありがとうございました

    キャンセル

  • 2018/05/01 22:39

    解決してよかったです。ケアレスミスの度に詰まってたらすすまないので、気をつけて・・・

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.75%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Python 3.x

    5275questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。