0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PsychoPyで回数制限のある画像呈示プログラムを実行する

Posted at
1 / 2

こんにちは。python初心者です。

今大学で、imagesという名前のフォルダ内のPNG形式のファイルを読み込み、それをシャッフルしてランダム表示させる呈示プログラムを作っているのですが、その呈示された画像を呈示後に別フォルダ(image=usedという名前のフォルダ)に移動させるようなものに改造したいです。
下記コードに、どのようなコードを追加したらいいでしょうか?
また、回数制限もつけれるようにしたいです。
psychopyを使って実行します。

from psychopy import visual, core, event
import random, pathlib
import csv
import glob

if name == 'main':

stimuli_list = glob.glob('images/*.PNG')

for filename in stimuli_list:
with open(filename, 'r') as input:
random.shuffle(stimuli_list); # 順番をランダムにする
print(stimuli_list); # ランダムにした順番を表示

current_folder = pathlib.Path(file).parent # 実行しているプログラムが入っているフォルダを特定
new_filename = "results_presented_stimuli.csv" # 新しいファイル名をnew_filenameという名前でプログラム内で使用
new_filepath = current_folder/new_filename # 新しいファイルのパスを指定
datafile = open(new_filepath, mode = 'w') # 新しいファイルを作成

win = visual.Window()
fixation_stim = visual.TextStim(win, "+") # 注視点
no_trials = 0 # no_trialsの初期化

for stim in stimuli_list:
fixation_stim.draw() # 注視点の描画
win.flip() # 注視点の表示
resp = event.waitKeys(keyList = ['space','q','return']) #スペースキーの入力待ち
if resp == ['q']: # qが入力されたら終了する
break
stimulus = visual.ImageStim(win, stim) # 画像刺激の準備
stimulus.draw() # 画像刺激の描画
win.flip() # 画像刺激の表示
core.wait(1.5)
no_trials = no_trials + 1
data = '{},{}\n'.format(no_trials, stim) # カンマ区切りの文字列にする
datafile.write(data) # ファイルに書き込む

datafile.close() # ファイルを閉じる
win.close()

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?