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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

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

Q&A

解決済

1回答

1644閲覧

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

hershel

総合スコア13

Python 3.x

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

0グッド

0クリップ

投稿2018/04/30 16:00

編集2018/05/01 03:17

前提・実現したいこと

「将棋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

該当のソースコード

python3

1テキスト化した棋譜があるとこと同じディレクトリで,インタープリタに入力しています 2 3 4import shogi 5import shogi.CSA 6kifu = shogi.CSA.Parser.parse_file(‘kifulist_test.txt’)[0] 7

試したこと

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です。
両方で同じ挙動を示しました。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2018/04/30 16:04

過去二つの質問は誤って投稿したようですね。その二つは削除依頼を出し、さらに本文を編集して回答が付かないよう配慮してください。
hershel

2018/04/30 16:04

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

回答1

0

ベストアンサー

とりあえず、

python

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

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

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

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

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

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

投稿2018/04/30 18:40

編集2018/04/30 18:43
hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hershel

2018/05/01 04:20

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

2018/05/01 04:51 編集

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

2018/05/01 13:36

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

2018/05/01 13:39

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問