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