如何使用python存储数组中的文件内容?

时间:2012-06-11 12:10:42

标签: python arrays file

我有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”

2 个答案:

答案 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构造会使文件在最后关闭。