2

配列に格納する必要がある 5 つのテキスト ファイルがあります。私はこのようにしてみました。

f=[]
f[0]=open('E:/cyg/home/Aiurea/workspace/nCompare5w5.txt','r')
f[1]=open('E:/cyg/home/Aiurea/workspace/nCompare5w10.txt','r')
f[2]=open('E:/cyg/home/Aiurea/workspace/nCompare5w20.txt','r')
f[3]=open('E:/cyg/home/Aiurea/workspace/nCompare5w50.txt','r')
f[4]=open('E:/cyg/home/Aiurea/workspace/nCompare5w80.txt','r')

for i in range(5):
    f[i].close()

エラーメッセージは「IndexError:リスト割り当てインデックスが範囲外です」です

4

2 に答える 2

3

あなたは使用する必要がありますappend

f.append(open('E:/cyg/home/Aiurea/workspace/nCompare5w5.txt','r'))

コードで、まだ存在していないインデックス値に割り当てようとしています。

'append()'は、リストの最後に項目を追加します。最初はリストfは空ですが、追加するたびにそのアイテムがリストの最後に追加され、インデックス番号でアクセスして参照(または変更)できます。

于 2012-06-11T12:12:08.597 に答える
2

パス/ファイル名情報全体を繰り返す必要はありません。

import os

path = 'E:/cyg/home/Aiurea/workspace'
fnames = [ 'nCompare5w{0}.txt'.format(i) for i in (5, 10, 20, 50, 80) ]

f = []
for fname in fnames:
    with open(os.path.join(path, fname), 'r') as fr:
        f.append(fr.readlines())

また、このwith構成により、最後にファイルを閉じる必要がなくなります。

于 2012-06-11T12:16:40.357 に答える