索引超出列表中的范围



我有以下python代码,它应该能够读取带有城市及其坐标的.csv文件。.csv文件的形式为:

name,x,y
name,x,y
name,x,y 

但是,我在第 764 行收到错误">列表索引超出范围":

758 """function to calculate the route for files in data folder with coordinates"""
759 start_time = time.time()
760 f = open(csv_name, "r")
761 f.readline()
762 f.readline()
763 f.readline()
764 lines = int(f.readline().split()[2])
765 f.readline()
766 f.readline()

该文件大约有 50 行。可能导致问题的原因是什么?谢谢!

如果程序正在读取的特定行不包含任何空格,则调用

f.readline().split()

会回来

['name,x,y']

因此,唯一可用的索引是0.

我相信您要做的是用逗号分隔每个字符串,如果是这种情况:

f.readline().split(',')

会这样做。

代码f.readline()返回一个字符串,拆分它返回从 readline(( 函数获得的唯一字符串的列表。

例:

f=open('property.csv', "r")
f.readline()
lines = f.readline().split()
print(lines)

输出: ['10001000,104,普特南,Y,3,2,100']

此外,f.readline().split()[0]会给出 10001000,104,PUTNAM,Y,3,2,100 作为字符串。 因此,f.readline().split()将只有 1 个元素,该元素将是字符串类型。要将字符串分成 csv 文件的列,请用逗号作为分隔符拆分字符串。在您的情况下,请将第 764 行替换为以下内容:

lines=int(f.readline().split(',')[2])

请注意:这是索引超出范围的错误,因为代码试图访问只有一个元素作为字符串的列表的第 2 个元素。

相关内容

  • 没有找到相关文章

最新更新