2015-08-24 25 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