我有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:list assignment index out of range”
答案 0 :(得分:3)
您需要使用append
:
f.append(open('E:/cyg/home/Aiurea/workspace/nCompare5w5.txt','r'))
在您的代码中,您尝试分配尚不存在的索引值。
'append()'将一个项添加到列表的末尾。最初您的列表f
为空,但每次附加它时,都会将该项添加到列表的末尾,您可以通过访问索引号来引用它(或更改它)。
答案 1 :(得分: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
构造会使文件在最后关闭。