在Python中将文本文件读入2D数组

时间:2016-12-12 20:07:18

标签: python arrays file

我正在尝试从文本文件中提取数据并将其放入2D数组中,其中列按其所代表的值进行组织,因此我可以绘制数据并对其进行分析。文本文件中的数据格式为

  

10.24284 49.89447 462.90 312.4 Wed Wed 12,2016 6:42:10p EST

我希望能够将每列中的值分成它们自己的列表或完整的2D数组。我试过调查open('filename')以及readlines,但它只是返回了一堆没有以任何方式排序的数字。这个问题的最佳解决方案是什么?

2 个答案:

答案 0 :(得分:1)

使用open('filename', 'r')(r表示读取),您可以使用简单的for循环遍历代码中的所有行。像这样的东西:

with open('filename', 'r') as inputfile:
    for line in inputfile:
        #do something with the string

你说你的数据格式是这样的:

  

10.24284 49.89447 462.90 312.4 Wed Wed 12,2016 6:42:10p EST

你可以采取每一行并将其拆分在每个空间上,如下所示:

line.split(" ")

你现在有类似的东西:

['10.24284', '49.89447', '462.90', '312.4', 'Wed', 'Dec', '7,', '2016', '6:42:10p', 'EST']

如果您想将日期保存在最终数组中,您可以限制分割它的时间,如下所示:

 line.split(" ", 4)

这会给你:

['10.24284', '49.89447', '462.90', '312.4', 'Wed Dec 7, 2016 6:42:10p EST']

答案 1 :(得分:0)

数字部分是微不足道的......

result = [map(float, L.split()[:4]) for L in open("datafile.txt")]

result[43][2]将是第44行的第三个数字(在Python中从0开始计数)