Python文件读取结果的行数是原来的两倍?

时间:2013-10-21 09:19:59

标签: python file-io

我正在尝试使用Python读取文件,我想将最后一列分开。但显然,根据len(data)len(labels),对于每次迭代,都会向datalabels添加两个元素。该文件本身包含常规\n换行符,不包含任何其他不可打印的字符。

def read_data(filename):
    print 'Start reading \"' + filename + '\"..'
    f = open(filename)
    data = labels = []
    for line in f:
            line = line.strip().split(',')
            labels.append(int(float(line[-1])))
            data.append([int(x) for x in (line[:-1])])
    f.close()
    print 'Finished reading.'
    return data, labels

我有点困在这里,有些调试在很长一段时间内都没有成效。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

data = labels = []

这会创建一个列表,当您执行labels.append(...)data.append(...)时,会附加到同一列表中。

你应该这样做:

data = []
labels = []