2016.09.30 Psychopy 日本語改行できない問題
PsychoPy (v1.84.1)でfMRI用の刺激を書いています。 日本語の文章をエクセルの条件ファイルから読み込んで、提示させるのだけど そのままだと長い文章は画面からはみ出てしまう。 文章の途中で改行したい。 という訳で、なんやかんやとやっておりましたが 結論から言うと エクセルのセル内で改行する(Alt + Enter) だけ。 ちなみに、開発環境は Windows 10 Pro PsychoPy v1.84.1 (anacondaとは独立して入れてます) PsychoPyのPythonのバージョンは 2.7.11 ( PsychoPyのシェル画面でsys.versionと入力 ) 最初は、改行したいところに改行文字(\n)を挿入してたんだけど \nがそのまんま出力されて、改行できなかった。 ここ に同じような問題で困っている方がいたのだが 回答をみると、改行文字のようなエスケープシーケンスを処理できるのは クォーテーションやダブルクオーテーションで囲まれた 文字列リテラル だけのようだ。 read, readline, readlinesなどで読み込んだ文字列ではエスケープシーケンスが処理されないとのことなので、本事案も同じと考えてよいと思う。 ちなみに 以下がtrialsというpsychopy.data.TrialTypeクラスのインスタンスに条件を代入している箇所 trials変数のtrialListに施行ごとの条件が格納されているっぽい リストの中のdescriptionという変数に条件ファイルのdescriptionの中身を代入している。 つまり、 thisTrial = trials.trialList[0] description = thisTrial.description を実行している。 ここで、\n -> \\nという変換が自動的になされているようである。 Pythonのドキュメント によるとヴァージョン2.7以降で 窓や林檎の会合文字を扱えるようになったらしい。 今回の解決策はヴァージョン2.7以降で有効ということかもしれない。