2014-09-19 155 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')