[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.python

FW: Escaping a triple quoted string' newbie question

Jules Stevenson

3/2/2008 8:03:00 AM

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.

Tia, Jules

1 Answer

Duncan Booth

3/2/2008 10:58:00 AM

0

"Jules Stevenson" <jules@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.