从txt文件导入列表

时间:2017-12-27 18:11:07

标签: python python-3.x

numbers.txt:

5      6
3      8
9      10

我想从numbers.txt创建一个列表,我的列表应该是[[5,6],[3,8],[9,10]

但是我一直在输出中得到\ t(数字之间)和\ n(最后,例如10 \ n等)。我该如何解决这个问题?我应该得到[[5,6],[3,8],[9,10]]

我的代码是:

file=open("numbers.txt","r")
l=[]
for line in file:
    l.append(line.split(','))

print(l)

谢谢(注意:每行中两个数字之间使用标签)

4 个答案:

答案 0 :(得分:2)

看起来你有\t个分隔值。这是我的最爱:

with open('numbers.txt') as f:
    # split the file by rows and rows by separator
    l = [i.split('\t') for i in f.read().split('\n')]

print(l) # [['5', '6'], ['3', '8'], ['9', '10']]

With open...确保文件在。

之后关闭

其他替代方案包括导入图书馆。 Numpy和pandas是处理数组/数据/表/矩阵的两个主要包。它们都将评估您的输入(在这种情况下,它将存储为整数)。 Numpy由Joran Beasley建议。

import numpy as np
l = np.genfromtxt('numbers.txt').tolist()

import pandas as pd
l = pd.read_csv('numbers.txt', sep='\t', header=None).values.tolist()

如果您需要整数或浮点数,请将下面的代码更改为以下代码之一:

l = [list(map(int,i.split('\t'))) for i in f.read().split('\n')]
# [[5, 6], [3, 8], [9, 10]]
l = [list(map(float,i.split('\t'))) for i in f.read().split('\n')]
# [[5.0, 6.0], [3.0, 8.0], [9.0, 10.0]]

答案 1 :(得分:0)

我会用:

l.append(','.join(line.split()))
不带参数的

split将按空格分隔您的行,包括制表符或换行符。

答案 2 :(得分:0)

let persistentContainer = NSPersistentContainer(name: "ModelFileName");

我可能会这样做......

答案 3 :(得分:0)

你可以试试这个:

print(list(map(lambda x:x.split(),open('file.txt','r'))))

输出:

[['5', '6'], ['3', '8'], ['9', '10']]

P.S:如果你怀疑发生了什么,如果你不close the file.

,你也可以读到这一点。