将tsv排序成多个列表

时间:2018-12-05 16:41:45

标签: python-3.x

我需要能够将47x28 tsv文件排序到47个不同的列表中。到目前为止,我有:

f = open('EnergyConsumers.txt')
ln = f.readline()
ln.split('\t')
for i in ln:
    bel.append(i)

但是输出是

['1', '9', '9', '0', '\t', '1', '9', '9', '1', '\t', '1', '9', '9', '2', 
'\t', '1', '9', '9', '3', '\t', '1', '9', '9', '4', '\t', '1', '9', '9', 
'5', '\t',]

我需要它来阅读

[1990,1991,1992,1993]

1 个答案:

答案 0 :(得分:0)

第一:

ln.split('\t')

什么都不做。除非分配给某些内容,否则结果将丢失。

然后

for i in ln:
    bel.append(i)

重复该行的字符。

您想要的:

bel.extend(ln.split())

(因此它会根据所有空格进行分割,包括被删除的换行符)

具有整数转换:

bel.extend(map(int,ln.split()))

最后,csv模块更易于使用

import csv
with open('EnergyConsumers.txt') as f:
    cr = csv.reader(f,delimiter="\t")
    bel.extend(map(int,next(cr)))

bel = [int(x) for x in next(cr)]

从头开始创建bel

这将读取一行,转换为整数,然后将整数添加到bel