【发布时间】:2014-01-03 14:48:18
【问题描述】:
我有一个 python 脚本,它获取文本文件的最后一行并将其拆分。一些用户一直在给我发电子邮件说列表索引超出范围错误不断弹出。这是相关代码:
if Data.closed == True:
Data = open("Data.txt", "r")
#
lines = len(Data.readlines())
Data.close()
Data = open("Data.txt", "r")
if lines > 1:
for x in range(0, lines):
lastLine = Data.readline()
#
else:
fatalError("ERROR:Map file has no data!!", True)
#
lastLineBroken = lastLine.split("|")
lstLnBrokLen = len(lastLineBroken)
lat = lastLineBroken[0]
lon = lastLineBroken[1]
Data.close()
【问题讨论】:
-
什么是
lines?这显然不是您的全部代码。 -
错误出现在哪一行?如果
lastline中没有'|',lon = lastLineBroken[1]会报错。 -
对不起!我忘记了那部分。已添加
-
你应该 use the
withstatement 在 Python 中处理文件,这是一种非常糟糕的迭代文件的方法——文件是迭代器,直接循环它!使用您当前的方法,您必须读取整个文件两次才能循环遍历它!