首页 > 解决方案 > 我有一个文本文件(12 列和 10K 行)。我想从文本文件加载数据并馈送到二维数组

问题描述

我有一个文本文件(12 列和 10K 行)。我想从文本文件加载数据并馈送到二维数组。文本文件包含以下数据 -
(3,9,16,40,41,44) (15,25,26,41,45,46) (1,6,21,27,39,48) (7,20,26,29,39,42) (17,23,25,29,30,43)

我知道如何从文本文件中导入数据。我试图编码

file = open('Data.txt','r')
input=[]
for line in file.readlines():
    input.append(line)
print (input)

但得到这样的输出
['(3,9,16,40,41,44) \n', '(15,25,26,41,45,46)\n', '(1,6,21,27,39,48)\n', '(7,20,26,29,39,42)\n', '(17,23,25,29,30,43)\n']

我怎样才能从输出中消除'\n得到输出,如下所示
[(3,9,16,40,41,44), (15,25,26,41,45,46), (1,6,21,27,39,48), (7,20,26,29,39,42), (17,23,25,29,30,43)]

我试着用
import numpy as np input = np.loadtxt("Data.txt", dtype='str') print(input)

但输出非常相似,因为数据被读取为字符串。任何建议都非常感谢。-谢谢

标签: pythonnumpy

解决方案


尝试这个:

with open('Data.txt','r') as file:
    result = [tuple(map(int, line.strip(' \n()').split(','))) for line in file]

print(result)

[(3, 9, 16, 40, 41, 44),
 (15, 25, 26, 41, 45, 46),
 (1, 6, 21, 27, 39, 48),
 (7, 20, 26, 29, 39, 42),
 (17, 23, 25, 29, 30, 43)]

我相信这是您想要的输出。

第一步是去除空格和括号 ( line.strip(' \n()'))。然后,将其拆分为逗号 ( .split(',')) 列表,然后将字符串列表转换为整数元组 ( tuple(map(int, ))。


推荐阅读