FW: Escaping a triple quoted string' newbie question

Duncan Booth duncan.booth at invalid.invalid
Sun Mar 2 05:57:43 EST 2008


"Jules Stevenson" <jules at js3d.co.uk> wrote:

> Hello, 
> 
> Apologies if the terminology in this email is a little incorrect, I'm
> still finding my feet.
> 
> I'm using python to generate some script for another language (MEL, in
> maya, specifically expressions). Maya runs python too, but
> unfortunately its expression language still has to use the maya
> syntax. 
> 
> If I pass the expression this code:
> 
> #runtime code [mel]
> expRuntime="""float $pos[]=particleShape1.worldPosition;
> setAttr ("heartPP_1_"+particleShape1.particleId+".tx") $pos[0];
> setAttr ("heartPP_1_"+particleShape1.particleId+".ty") $pos[1];
> setAttr ("heartPP_1_"+particleShape1.particleId+".tz") $pos[2];
> """
> dynExpression (p, s=expRuntime, rad=1)     #generate the expression
> 
> Then maya errors out, however if I pass maya an 'escaped' version:
> 
> expRuntime="""float $pos[]=particleShape1.worldPosition;\r\nsetAttr
> (\"heartPP_1_\"+particleShape1.particleId+\".tx\") $pos[0];\r\nsetAttr
> (\"heartPP_1_\"+particleShape1.particleId+\".ty\") $pos[1];\r\nsetAttr
> (\"heartPP_1_\"+particleShape1.particleId+\".tz\") $pos[2];" -rad
> particleShape1;"""
> 
> Then all is well. My question is, is there any way to convert the
> first variable example to the second? It's a lot easier to type and on
> the eye. 
> 
Escaping the quotes doesn't change the string, so the only difference I can 
see between your strings is that you have split the lines by carriage-
return+linefeed instead of just linefeed characters. If so:
   s = expRuntime.replace('\n', '\r\n')
should have the desired effect.



More information about the Python-list mailing list