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以降で有効ということかもしれない。

コメント

このブログの人気の投稿

TightVNCでリモートデスクトップ

firefoxからmidoriちゃんにのりかえ