python:从文件中读取行并存储在列表中

时间:2015-12-08 22:56:19

标签: python-2.7

我想从文件中读取每个列并将其存储到每个列表中。例如,该文件如下所示:

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:列表索引超出范围。

2 个答案:

答案 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)