On Oct 17, 4:47 pm, Fabian Braennstroem <[EMAIL PROTECTED]> wrote: <snip> > Unfortunately, it does not parse the whole file names with > the underscore and I do not know yet, how I can access the > line with 'define/boundary-conditions'. Every 'argument' of > that command should become a separate python variable!? > Does anyone have an idea, how I can achieve this!? > Regards! > Fabian
You are trying to match "keps1500_500.dat" with the expression "Word(alphanums)". Since the filename contains characters other than alphas and numbers, you must add the remaining characters ("." and "_") to the expression. Try changing: write= Word(alphanums) to: write= Word(alphanums+"._") To help you to parse "/define/boundary-conditions in velocity-inlet 10 0.1 0.1 no 1", we would need to know just what these arguments are, and what values they can take. I'll take a wild guess, and propose this: real = Combine(integer + "." + integer) defineBoundaryConditions = "/define/boundary-conditions" + \ oneOf("in out inout")("direction") + \ Word(alphanums+"-")("conditionName") + \ integer("magnitude") + \ real("initialX") + \ real("initialY") + \ oneOf("yes no")("optional") + \ integer("normal") (Note I am using the new notation for setting results names, introduced in 1.4.7 - simply follow the expression with ("name"), instead of having to call .setResultsName.) And here is a slight modification to your printout routine, using the dump() method of the ParseResults class: for tokens in defineBoundaryConditions.searchString(data): print print "Boundary Conditions = "+ tokens.conditionName print tokens.dump() print print 50*"-" prints: Boundary Conditions = velocity-inlet ['/define/boundary-conditions', 'in', 'velocity-inlet', '10', '0.1', '0.1', 'no', '1'] - conditionName: velocity-inlet - direction: in - initialX: 0.1 - initialY: 0.1 - magnitude: 10 - normal: 1 - optional: no -- http://mail.python.org/mailman/listinfo/python-list