我正在尝试使用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中搜索对象的唯一方法。
发布于 2019-03-01 10:05:47
只要像这样在变量name两边添加引号,实际上就是在创建一个新字符串,而不是引用该变量。
在Python中,有许多不同的方法可以连接字符串以实现您想要的效果:
使用%
'name%s' % '*'使用字符串的format方法:
'{}*'.format(name)简单地使用+
name + '*'所有这些都将产生相同的输出'mesh*',并且可以与cmds.ls一起使用
就个人而言,我坚持使用format,and this page demonstrates a lot of reasons why.
https://stackoverflow.com/questions/54916889
复制相似问题