为了账号安全,请及时绑定邮箱和手机立即绑定

我有一个文本文件(12 列和 10K 行)。我想从文本文件加载数据并提供给二维数组

我有一个文本文件(12 列和 10K 行)。我想从文本文件加载数据并提供给二维数组

牧羊人nacy 2021-10-10 10:56:36
我有一个文本文件(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 npinput = np.loadtxt("Data.txt", dtype='str')print(input)但是输出非常相似,因为数据是作为字符串读取的。任何建议都非常感谢。-谢谢
查看完整描述

2 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

尝试这个:


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, ))。


查看完整回答
反对 回复 2021-10-10
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

这是使用的简单方法ast.literal_eval():


from ast import literal_eval


with 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)]


查看完整回答
反对 回复 2021-10-10
  • 2 回答
  • 0 关注
  • 217 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信