我一直在努力完成一项任务,经过几个小时的搜索,询问同学并在这里查看,我无法解决这个问题。
我有一个包含+100000行数据的文本文件,格式为:
"Words" \t "float" \t "float"
我正在尝试编写一个函数,让我搜索一行并提取一条信息。当我正常写它时,它工作正常,但我似乎无法把它放入函数
FileList = Mammal.readlines()
Name,Latitude,Longitude = FileList[int].split("\t")
print (Name)
def LineToList(int):
FileList = Text.readlines()
A,B,C = FileList[int].split("\t")
LineToList(0)
print (A)
我收到此错误。
IndexError: list index out of range
我已经尝试将int换成一个字母,一个比例并添加行来返回A,B和C的值,然后将它们打印出去,但每次都失败。
答案 0 :(得分:2)
您的代码使用readlines()
读取打开文件的全部内容,然后只处理一行。如果您的函数看起来与您显示的完全相同,那么它将在您第一次使用它时成功(只要它在新打开的文件中使用);但是在第二次调用时,readlines()
将无需再阅读,您将获得一个空列表。
这是一种转换整个文件的简单方法:
lines = mammal.readlines()
values = [ row.split("\t") for row in lines ]
然后,您将所有值都放在一个三元组列表中。
另外,请注意大小写。 Python样式使用以用户定义类型的大写开头的名称,而不是普通变量。