首页 > 解决方案 > Python:读取数据集文件

问题描述

我必须读取并存储一个由 3 列和 N 行组成的数据文件 *块数 .. 这里是一个简单的例子:

z=3 
1 2 3 
2 5 6 
1 5 7

z=2
1 3 9
2 5 7

使用 python 读取这个文件并存储几个 z 行块的最佳方法是什么?

编辑:我必须将它们存储到一个单独的块(索引)中,例如在上面的例子中我应该有

block[0]=[[1 2 3],[2 5 6],[1 5 7]] 
block[1] = [[1 3 9],[2 57]]   

@shahaf e 来看看 indicizzo 吗?scusa ma sono un noob in python :) 有人可以解释我如何指示几个块吗?特别是我写z= N的,但实际上是

 ZONE I=     41  F=POINT  TIME T=      0.0000715363

我必须抓住 41 .. 并读取并存储下面的 41 行,而不是在几条白线之后我遇到另一个ZONE部分.. 我不知道文件中有多少个区域..

标签: pythondatabasefile

解决方案


这是解决方案的简单草稿,可以简化,但您可以从此处获取

tmp_arr= list()
output=list()
with open('file.txt') as f:
  for line in f.readlines():
    if len(line.strip()) == 0:
      pass
    elif line.startswith('z='):
      counter = int(line.split('=')[-1])
    else:
      tmp_arr.append(line.split())
      counter -= 1
      if counter == 0:
        output.append(tmp_arr)
        tmp_arr = list()

输出

[[['1', '2', '3'], ['2', '5', '6'], ['1', '5', '7']], [['1', '3', '9'], ['2', '5', '7']]]

推荐阅读