我有一百个文件,每个文件有三列。 在python脚本中,我为每个文件提取三列:
for i in range(1,100)
# extract data
os.chdir('directory/to/files')
fileName = 'file'+str(i).dat
f = open(fileName)
c1 = [l.split()[0] for l in f]
f.close()
f = open(fileName)
c2 = [l.split()[1] for l in f]
f.close()
f = open(fileName)
c3 = [l.split()[2] for l in f]
f.close()
doAnalysis()
令人惊讶的是,我在迭代15处有一个IndexError
,指向上面代码的第12行:list index out of range
。
我以为python认为我的file15.dat有不到3列,所以我在第12行之前添加了这个:
if i==15:
c3IF = []
for l in f:
print(len(l.split())
c3IF.append(l.split()[2])
c3IF
列表似乎完全包含file15.dat的第三列,l.split总是长度为3.我不明白为什么理解列表c3在特定迭代时失败而另外两个理解列表没有。
答案 0 :(得分:0)
最终,我发现错误是在迭代16而不是在迭代15时引发的,而在long long file16.dat中,我有一行,其中第三列数据丢失,导致IndexError。