pyparsing batch file

Paul McGuire ptmcg at austin.rr.com
Wed Oct 17 16:37:25 EDT 2007


On Oct 17, 4:47 pm, Fabian Braennstroem <f.braennstr... at gmx.de> 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






More information about the Python-list mailing list