我像这样解析.txt
:
def parse_file(src):
for line in src.readlines():
if re.search('SecId', line):
continue
else:
cols = line.split(',')
Time = cols[4]
output_file.write('{}\n'.format(
Time))
我认为cols
是我可以使用索引的列表。虽然它成功打印出我想要的正确结果,但存在超出范围的错误:
文件“./tdseq.py”,第37行,在parse_file中 时间= cols [4] IndexError:列表索引超出范围 make: * [all]错误1
我使用的数据:
I10.FE,--,xx,xxxx,13450,tt,tt,tt,33,22,22:33:44
答案 0 :(得分:2)
答案 1 :(得分:0)
您收到的是IndexError,因为cols
中没有五个元素。也许文件中有空行?
另请注意,从文件中获取行最好使用:
for line in src:
如果你正在搜索一个简单的字符串,你不需要正则表达式,这就足够了:
if 'SecId' in line:
continue
答案 2 :(得分:0)
使用len(cols)
检查。此外,您的输入数据表明time_index=3
不是4
:
from __future__ import print_function
def parse_file(input_file):
time_index = 3
for line in input_file:
if 'SecId' not in line:
cols = line.split(',')
if len(cols) > time_index:
time = cols[time_index]
print(time, file=output_file)