用于maya的Python:为什么我不能在与通配符的串联中使用变量?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于maya的Python:为什么我不能在与通配符的串联中使用变量?相关的知识,希望对你有一定的参考价值。
我正在尝试在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.
以上是关于用于maya的Python:为什么我不能在与通配符的串联中使用变量?的主要内容,如果未能解决你的问题,请参考以下文章
在 Maya 中使用 mel/python 创建一个简单的层次结构
如何使用 python 在 Maya 中设置目录?目前使用 PyQt4,但愿意接受任何建议