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以降で有効ということかもしれない。
日本語の文章をエクセルの条件ファイルから読み込んで、提示させるのだけど
そのままだと長い文章は画面からはみ出てしまう。
文章の途中で改行したい。
という訳で、なんやかんやとやっておりましたが
結論から言うと
エクセルのセル内で改行する(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以降で有効ということかもしれない。
コメント
コメントを投稿