Python在读取表格数据文件时给出索引超出范围

时间:2018-11-29 15:55:47

标签: python list

对于一项作业,我必须在“处理”中编写代码以从表格数据文件读取。文件的每一行看起来都像"Name, 242, 353, 5325, 35352",因此该列表应包含五项,如果我打印它,则会看到全部五项。但是当我尝试执行x = data[1]时,它给了我索引超出范围的错误。这是我的代码:

f = open('popdata.txt', 'r')

for line in f:

    data = line.rstrip('\n')
    data = data.split(',')


    city = data[0]
    x = int(data[1])
    y = int(data[2])
    old = float(data[3])
    new = float(data[4])

编辑:如果可以

 print(data)

它打印:

"['Halifax', '447', '349', '220', '320']"

如果我这样做:

print(city)

它打印:

Halifax

但是,如果我对索引1或更高的索引执行任何操作,那是行不通的吗?

编辑:我在拆分后添加了行if len(data) == 5:,现在行了!

1 个答案:

答案 0 :(得分:0)

您可以在该特定索引上尝试if else条件以处理异常

f = open('popdata.txt', 'r')

for line in f:

    data = line.rstrip('\n')
    data = data.split(',')


    city = data[0] if data[0:] else "" #inside ""(double quotes) add any value you want to return in case data is not available.
    x = int(data[1]) if data[1:] else ""
    y = int(data[2]) if data[2:] else ""
    old = float(data[3]) if data[3:] else ""
    new = float(data[4]) if data[4:] else ""