I could make it that simple, but that is also incredibly slow and on a file with several million lines, it takes somewhere in the league of half an hour to grab all the data. I need this to grab data from many many file and return the data quickly.

Brandon L. Harris


Andreas Tawn wrote:
I'm trying to read in and parse an ascii type file that contains
information that can span several lines.
Example:

createNode animCurveTU -n "test:master_globalSmooth";
    setAttr ".tan" 9;
    setAttr -s 4 ".ktv[0:3]"  101 0 163 0 169 0 201 0;
    setAttr -s 4 ".kit[3]"  10;
    setAttr -s 4 ".kot[3]"  10;
createNode animCurveTU -n "test:master_res";
    setAttr ".tan" 9;
    setAttr ".ktv[0]"  103 0;
    setAttr ".kot[0]"  5;
createNode animCurveTU -n "test:master_faceRig";
    setAttr ".tan" 9;
    setAttr ".ktv[0]"  103 0;
    setAttr ".kot[0]"  5;

I'm wanting to grab the information out in chunks, so

createNode animCurveTU -n "test:master_faceRig";
    setAttr ".tan" 9;
    setAttr ".ktv[0]"  103 0;
    setAttr ".kot[0]"  5;

would be what my regex would grab.
I'm currently only able to grab out the first line and part of the
second line, but no more.
regex is as follows

my_regexp =e.compile("createNode\ animCurve.*\n[\t*setAttr.*\n]*")

I've run several variations of this, but none return me all of the
expected information.

Is there something special that needs to be done to have the regexp
grab
any number of the setAttr lines without specification?

Brandon L. Harris

Aren't you making life too complicated for yourself?

blocks =]
for line in yourFile:
    if line.startswith("createNode"):
        if currentBlock:
            blocks.append(currentBlock)
        currentBlock =line]
    else:
        currentBlock.append(line)
blocks.append(currentBlock)

Cheers,

Drea


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to