我正在尝试在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中的对象,请告诉我它的名称,我将对它进行一些研究。目前,这是我了解如何在玛雅中搜索对象的唯一方法。
只要在变量name
周围添加引号,就像这个'name'
一样,实际上只是创建一个新字符串而不是引用变量。
有许多不同的方法可以在Python中连接字符串以实现您的需求:
使用%
:
'name%s' % '*'
使用字符串的format
方法:
'{}*'.format(name)
只需使用+
:
name + '*'
所有这些都将产生相同的输出,'mesh*'
,并将与cmds.ls
一起使用
我个人坚持使用format
,and this page demonstrates a lot of reasons why.