我想从文件中读取每个列并将其存储到每个列表中。例如,该文件如下所示:
data.txt中:
1234 asdf
2341 asda
1231 asdf
......
并且,我希望存储如:list_1=[1234, 2341, 1231, ...]
,list_2=[asdf, asda, asdf, ...]
。我编写如下代码:
def parse():
list_1 = []
list_2 = []
with open('data.txt', 'rb') as f:
for line in f:
a = line.strip().split()
list_1 = a[0]
list_2 = a[1]
当我只是print a[0]
,print a[1]
时,代码效果非常好。但是,当我像上面的代码一样写时,会出现
IndexError:列表索引超出范围。
答案 0 :(得分:0)
首先,您可能打算在列表中调用append
,如list_1.append(a[0])
和list_2
的相应更改。此外,如果float(a[0])
稍后应被视为数字,您可能希望附加a[0]
。
IndexError
可能来自输入中的空行(可能是最后一行)。要解决此问题,请在访问其元素之前检查len(a)
,或确保仅为代码提供干净的输入。
答案 1 :(得分:0)
略过空行并附加到您的列表中:
list_1 = []
list_2 = []
with open('data.txt') as f:
for line in f:
if not line.strip():
continue
a, b = line.split()
list_1.append(int(a))
list_2.append(b)