forma inteligente de leer múltiples variables de archivo de texto en Python

Estoy intentando cargar varios vectores y matrices (para números) que se almacenan en un solo archivo de texto. El archivo se ve así:

%VectorA 1 2 3 4 %MatrixA 1 2 3 4 5 6 %VectorB 3 4 5 6 7 

La solución ideal sería tener un objeto de diccionario como:

 {'VectorB': [3, 4, 5, 6, 7], 'VectorA': [1, 2, 3, 4], 'MatrixA':[[1, 2, 3],[4, 5, 6]]} 

El orden de las variables se puede asumir como fijo. Por lo tanto, una lista de los arrays numpy en el orden de aparición en el archivo de texto también estaría bien.

 from StringIO import StringIO mytext='''%VectorA 1 2 3 4 %MatrixA 1 2 3 4 5 6 %VectorB 3 4 5 6 7''' myfile=StringIO(mytext) mydict={} for x in myfile.readlines(): if x.startswith('%'): mydict.setdefault(x.strip('%').strip(),[]) lastkey=x.strip('%').strip() else: mydict[lastkey].append([int(x1) for x1 in x.split(' ')]) 

arriba da mydict como:

 {'MatrixA': [[1, 2, 3], [4, 5, 6]], 'VectorA': [[1, 2, 3, 4]], 'VectorB': [[3, 4, 5, 6, 7]]}