我正在尝试在maya中使用“ ls” python命令,以名称的形式列出某些具有匹配字符串的对象,并以通配符加以概括。
简单的示例代码如下:
from maya.cmds import *
list = ls('mesh*')
此代码有效,并且将返回名称中具有匹配字符串的对象列表,但是,我想在字符串中使用变量而不是硬编码。像这样:
from maya.cmds import *
name = 'mesh'
list = ls('name*')
或这样:
from maya.cmds import *
name = 'mesh'
list = ls('name' + '*')
但是,在两个示例中,它都返回一个与第一个示例不同的空列表。我不确定为什么会这样,因为在这些示例中,字符串的混和应该像第一个示例一样出现在“ mesh *”中。我在此网站上找不到答案,所以我选择问一个问题。
谢谢。
JD
PS。如果有更好的方法来查询maya中的对象,请告诉我它的名称,然后我将对其进行一些研究。目前,这是我知道如何在maya中搜索对象的唯一方法。
答案 0 :(得分:0)
像这样name
一样,只要在变量'name'
周围加上引号,实际上就是在创建一个新字符串,而不是引用该变量。
有很多不同的方法可以在Python中连接字符串以实现所需的功能:
使用%
:
'name%s' % '*'
使用字符串的format
方法:
'{}*'.format(name)
仅使用+
:
name + '*'
所有这些将产生相同的输出'mesh*'
,并将与cmds.ls
一起使用
我个人坚持使用format
,and this page demonstrates a lot of reasons why.