我有一个文本文件(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)


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


牧羊人nacy
浏览 218回答 2
2回答

qq_花开花谢_0

尝试这个: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, ))。

翻翻过去那场雪

这是使用的简单方法ast.literal_eval():from ast import literal_evalwith open('Data.txt','r') as file:    data = [literal_eval(line) for line in file]print(data)打印输出:[(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)]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python