2014-09-19 4 views
0

У меня есть текстовый файл в таком формате ниже с большим количеством линий,питон NumPy текстового файл расщепление

[ABC] [text text] [1234] 
[DEF] [text text: text] [2345] 
.... 

Я хочу, чтобы разделить столбцы в массивы.

names = [ ABC , DEF] 
text = [text text, text text: text] 
values = [1234, 2345] 

Я пытаюсь с numpy.genfromtxt, но я не уверен, как установить разделитель, поскольку есть пробелы внутри текстового содержимого. Возможно ли, что разделитель определен как «[]» в некотором роде.

ответ

0

Ниже приведен пример переноса столбцов в строки.

>>> import numpy as np 
>>> s = "[ABC] [text text] [1234]\n[DEF] [text text: text] [2345]" 
>>> lines = s.split('\n') 
# this is were the delimiters are split apart --vvv 
>>> rows = [line.lstrip('[').rstrip(']').split('] [') for line in lines] # list comprehension 
>>> rows 
[['ABC', 'text text', '1234'], ['DEF', 'text text: text', '2345']] 
>>> np_rows = np.array(rows) 
>>> np_rows.T 
array([['ABC', 'DEF'], 
     ['text text', 'text text: text'], 
     ['1234', '2345']], 
     dtype='|S15') 
>>> np_rows.transpose() 
array([['ABC', 'DEF'], 
     ['text text', 'text text: text'], 
     ['1234', '2345']], 
     dtype='|S15') 
Смежные вопросы