私は画像のリストを持っており、その名前を '='記号で分割したいと思います。python/psychopy:forループで画像名を分割する
From:
'set_one-C:\Users\Documents\stim\01=aa.png'
'aa.png'
に私は、リスト内の各アイテムを実行して、順番に名前を分割する「のループ」を作成しようとしました。コンソールにエラーはありませんが、名前は分割されていません。ここで
は私のコードとループです:
imgList1 = glob.glob(os.path.join('C:\Users\Documents\stim','*.png'))
set_one = [visual.ImageStim(win, img, name='set_one-' + img) for img in imgList1[:8]]
set_two = [visual.ImageStim(win, img, name='set_two-' + img) for img in imgList1[8:16]]
sets = [set_one, set_two]
a1 = sets[0][0]
a2 = sets[0][1]
a3 = sets[0][2]
a4 = sets[0][3]
a5 = sets[0][4]
a6 = sets[0][5]
a7 = sets[0][6]
a8 = sets[0][7]
list = [a1,a2,a3,a4,a5,a6,a7,a8]
print a1
for item in list:
item = item.name.split('=')[1]
print a1
>>ImageStim(autoLog=True, color=array([ 1., 1., 1.]), colorSpace='rgb', contrast=1.0, depth=0, flipHoriz=False, flipVert=False, image=str(...), interpolate=False, mask=None, maskParams=None, name=str(...), opacity=1.0, ori=0.0, pos=array([ 0., 0.]), size=array([ 18.36534845, 11.47834278]), texRes=128, units='deg', win=Window(...))
>>ImageStim(autoLog=True, color=array([ 1., 1., 1.]), colorSpace='rgb', contrast=1.0, depth=0, flipHoriz=False, flipVert=False, image=str(...), interpolate=False, mask=None, maskParams=None, name=str(...), opacity=1.0, ori=0.0, pos=array([ 0., 0.]), size=array([ 18.36534845, 11.47834278]), texRes=128, units='deg', win=Window(...))
私は単純に、このように個別にそれらを分割することができ知っている:
a1 = a1.name.split('=')[1]
a2 = a2.name.split('=')[1] etc..
print a1
>>aa.png
をしかし、私はによりその分裂の量にこれを自動化する必要がありますか私はする必要があります。 forループがリストから各イメージの名前を分割しない理由はわかりません。あなたがのためのループであなたのlist
を変更していないので
new_list = []
for item in list:
new_list.append(item.name.split('=')[1])
print(new_list)
:
おかげで、 スティーブ
forループの 'list'とは何ですか?そして、構造アイテムは属性 'name'を持っていますか? – MooingRawr
申し訳ありません、画像の一覧です。元の投稿を編集しました。そして、はい、各画像は属性 'name'を持っています。 – Steve