2015-08-24 27 views
0

我想逐行閱讀一個文件,並將每個單詞組分解爲一個n長度的元組或列表。例如:Readline into Tuples

 
@16 @ties-2 -> '@','16',' ','@','ties-2' 
5=3+2 -> '5','=','3','+','2' 

是否有處理這類數據的任何現有的方式或我要從頭開始寫我自己的解析器?

+0

查找正則表達式 – muddyfish

+2

首先,定義你所說的「字組」更貼切一點意思。 – holdenweb

+0

我正在投票結束,因爲這是要求推薦**工具或軟件庫**。 –

回答

1

下可以在Python中使用:

import re 

lines = ["@16 @ties-2", "5=3+2"] 

for line in lines: 
    print [x for x in re.split("(?<[email protected])([-a-z0-9]+)|([0-9=+-])|()", line) if x] 

這將顯示如下:

['@', '16', ' ', '@', 'ties-2'] 
['5', '=', '3', '+', '2'] 

如果真正需要的元組,而不僅僅是一個列表,包裹從列表理解返回在tuple()打電話。使用Python 2.7進行測試。

從文件中讀取:

with open("input.txt", "r") as f_input: 
    for line in f_input: 
     print tuple([x for x in re.split("(?<[email protected])([-a-z0-9]+)|([0-9=+-])|()", line.rstrip("\n")) if x]) 
+0

「Off topic」或不是這正是我正在尋找,謝謝隊友! – uMinded