[Tutor] please help formating

Kent Johnson kent37 at tds.net
Fri May 25 13:11:00 CEST 2007


Just for fun, here is a parser written with pyparsing. It treats 
newlines as whitespace so it will work with the split data you posted.
http://pyparsing.wikispaces.com/

data = '''(39577484, 39577692) [['NM_003750']]
(107906, 108011) [['NM_002443']]
(113426, 113750) [['NM_138634', 'NM_002443']]
(106886, 106991) [['NM_138634', 'NM_002443']]
(100708, 100742) [['NM_138634', 'NM_002443']]
(35055935, 35056061) [['NM_002313', 'NM_001003407',
  'NM_001003408']]
'''

from pyparsing import *
keys = Suppress('(') + Word(nums) + Suppress(',') + Word(nums) + 
Suppress(')')
values = Group(Suppress('[[') + 
delimitedList(sglQuotedString.setParseAction(removeQuotes)) + 
Suppress(']]'))
expr = keys + values

for result, start, end in expr.scanString(data):
     print '%s %s\t%s' % (result[0], result[1], ','.join(result[2]))


Kent


More information about the Tutor mailing list