如何从Python中的文本文件中读取两个数组或矩阵?

Naf*_*ees 0 python arrays numpy matrix text-files

我是编程和python的新手.所以我面临很多问题.我需要一些帮助来阅读python中的文本文件.

在我的输入文本文件中,我有两个带有一些字符串的数据数组.

HEAD1
1 0 0
2 3 4
3 3 0
END1

HEAD2
2 3 4
8 7 5
1 0 7
END2
Run Code Online (Sandbox Code Playgroud)

现在我希望python读取此文件并将这两个数组存储为2个数组或2个矩阵.数组大小不固定,可以是任何大小.Python必须按头和尾决定大小.我该怎么做?

我试过numpy.loadtxt和numpy.getfromtxt.In numpy.getfromtxt,我得到了字符串的错误.没有字符串,它将这两个数组组成1个数组.

这是试图做的,但不能做到....

import math as m
import numpy as np

file_name=input("Input file name(with extension):")
file=open(file_name,'r')

line=file.readline()
while line!= '':
    print(line,end='')
    line=file.readline()

##table=np.loadtxt(file_name)
##print('table=')
##print(table)
##
table2=np.genfromtxt(file_name,comments='#') 
print('table2=')
print(table2) 
Run Code Online (Sandbox Code Playgroud)

wim*_*wim 5

由于这个'HEAD'和'END'的格式不知道numpy.loadtxt,我想你必须自己"大块"这些数组:

import numpy as np

def tokenizer(fname):
    with open(fname) as f:
        chunk = []
        for line in f:
            if 'HEAD'in line:
                continue
            if 'END' in line:
                yield chunk
                chunk = []
                continue
            chunk.append(line)


arrays = [np.loadtxt(A) for A in tokenizer('yourfile.txt')]
Run Code Online (Sandbox Code Playgroud)