替换重命名中的字符

时间:2014-03-20 08:45:50

标签: python rename maya

我正在尝试做一个简单的Maya重命名用户界面,但我被困在一个部分 - 用当前命名替换他的初始字符与其他字符

例如;大纲中的3个项目(无论它们是什么): - pCube1, - pSphere1, - nurbsSphere1

到目前为止,我能够写出可以选择和重命名一个或多个对象的点,请参阅下面的代码

objects = []
objects = cmds.ls(sl=True)
for obj in objects:
    test = []
    test = cmds.rename(obj, "pSphere" )
    print objects
    # Results: pSphere, pSphere2, pSphere3 #

但是,假设现在我选择了nurbsSphere1和pSphere1,我只是想替换“' Sphere'在其中使用' Circle',而不是将结果显示为:nurbsCircle1, pCircle1,我收到了错误消息# TypeError: Too many objects or values. #

charReplace = "test"
if charReplace in objects:
    newName = []
    newName = cmds.rename(objects, "Circle" )

有关于它的任何建议吗?

1 个答案:

答案 0 :(得分:1)

  1. 根据documentation重命名命令,仅将字符串作为输入参数。您在尝试重命名文件名时提供名为objects的列表。
  2. 此外,您正在"test"列表中搜索字符串objects。 相反,您应该在对象列表中的每个文件名中搜索字符串"test"
  3. rename命令使用较新的字符串重命名旧字符串。它不会替换字符串中的子字符串(例如" sphere" in" nurbsSphere")。为了实现这一点,您应该单独创建新文件名,然后使用它们重命名文件。
  4. 你可以试试这个:

    charReplace = "test"
    for filename in objects:
        if charReplace in filename:
            newFilename = filename.replace(charReplace, "Circle")
            cmds.rename(filename, newFilename)
    

    我没有安装Maya,因此未对代码进行测试。