要从一个txt文件导入到列表

numbers.txt:要从一个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)

谢谢(注:标签是每两个数字之间用线)

回答:

看起来像你有标签\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和熊猫是处理数组/数据/表/矩阵的两个主要包。他们都会评估你的输入(在这种情况下,它将被存储为整数)。 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]]

回答:

我会用:

l.append(','.join(line.split())) 

split没有参数会分裂你行通过空格,包含制表符或换行符。

回答:

dat = numpy.genfromtxt("numbers.txt") 

大概是我会做...

回答:

你可以试试这个:

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

输出:

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

PS:你可以看到这篇太多,如果你怀疑发生了什么,如果你不close the file.

以上是 要从一个txt文件导入到列表 的全部内容, 来源链接: utcz.com/qa/266800.html

回到顶部