Multiline regex
Brandon Harris
brandon.harris at reelfx.com
Wed Jul 21 11:42:11 EDT 2010
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
>
>
More information about the Python-list
mailing list