With your format() call, you need a string format specifier to tell it how 
to use the arguments you've supplied it..for example, in the working script 
one, the format specifier is the string "{0}_JY_{1}"

If you did a straight print on this, you'd get literally "{0}_JY_{1}", but 
since you're invoking format() against it, it'll go through and replace the 
{0} with the first argument in format() and {1} with the 2nd argument, and 
so on and so on. The { } are markers for where format() should be inserting 
values. Your loop currently is calling format(t[0], t[1]) against a string 
that doesn't contain any of the { }'s so it's not doing anything, and the 
result is that new_fn is the same as objects 

Is this more what you're after?

list = cmds.ls('*_set*') 

for objects in list:

    # t = cmds.ls(objects)[0].split('_')[-1]

    # no need to call cmds.ls again to select anything, you've

    # already got the name with the first cmds.ls('*_set*') call

    t = objects.split('_')[-1]

 
    # new_fn = objects.format( t[0], t[1] )
    # apply a new prefix to the setXYZ suffix

    new_fn = "aNewPrefix_{0}".format(t)



On Tuesday, October 30, 2012 7:09:07 PM UTC+8, Daz wrote:
>
> Heya
>
> I'm battling with a part of my script... I want to cmds.ls certain items 
> and then remove part of their name. After that I want the resulting name to 
> be used for next part of the script. The wall I hit is with .format 
> string... I got an working example but somehow it makes no sense to me 
> whh... anyway have a look, if any1 could push me to the right direction 
> that would be great ! I should be able to pick it up after hehe :)
>
>
> Here is example of working script:
>
> fn = "LN0001_07272010_3.dat".split('_')
> new_fn = '{0}_JY_{1}'.format(fn[0], fn[1])
> print new_fn
>
> but he uses premade name... 
>
> and here is my try
>
> list = cmds.ls('*_set*')
> for objects in list:
>       t = cmds.ls(objects)[0].split('_')[-1]
>       new_fn = objects.format( t[0], t[1] )
>       print new_fn
>
> I just want to be able to remove _set and use the new name to select nodes 
> and run next script...
>
> Thanks in advance! :)
>

-- 
view archives: http://groups.google.com/group/python_inside_maya
change your subscription settings: 
http://groups.google.com/group/python_inside_maya/subscribe

Reply via email to