需要帮助来搜索和替换我给定选项的工作。我需要搜索和替换仅适用于网格,关节和定位器。这就是我到目前为止所做的:
def searchAndReplace(self):
searchText = str(self.windowObj.myLookFor.text()) #My search text feild
replaceText = str(self.windowObj.myRepFor.text()) #My replace text feild
selection = cmds.ls(sl=True) #only selected items
locators = cmds.listRelatives(cmds.ls(type= 'locator'), p=1)# Give me the list of locators
meshes = cmds.listRelatives(cmds.ls(type= 'mesh'), p=1) #Give me the list of all meshes
joints = cmds.ls(type = 'joint')# Give me the list of my joints.
if len(selection) > 0:
if self.windowObj.myRepAll.isChecked(): #Radial button to select everything in scene
if locators.find(searchText) != -1:
for loc in locators: #for all the locators in scene, add to loc
newName = locators.replace(searchText, replaceText) #search and replace
cmds.rename(locators, newName) #add the new name.
但我得到的错误是我不能在定位器上使用“.find”。我得到的错误是:
# AttributeError: 'list' object has no attribute 'find'
我该如何解决这个问题?请记住,我是Maya中Python的新手。基本上我希望搜索和替换能够处理我在场景中的所有关节,定位器和网格物体。
答案 0 :(得分:2)
这就是错误。
if locators.find(searchText) != -1:
错误信息非常简单。您正试图在列表中使用find
,但该列表无效。
[].find
# Error: AttributeError: file <maya console> line 1: 'list' object has no attribute 'find' #
find
是一个字符串操作。
''.find
# Result: <built-in method find of str object at 0x1f43508> #
当你遍历对象时,你需要使用它。名字,不在他们的数组上。