使用Python将选定的节点名放入Nuke中的列表或元组中

2024-10-01 09:41:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图获得一个在Nuke中使用Python的选定节点的名称列表。 我试过:

for s in nuke.selectedNodes():
    n = s['name'].value()
    print n

这给了我所选节点的名称,但作为单独的字符串。 我对它们做不了什么来组合每根弦。如果我 在Nuke脚本编辑器中选择了三个合并:

结果:Merge3 合并2 合并1

如果我把最后一个变量n括在括号中,我得到:

^{pr2}$

所以我才知道它们是分开的。我找到了另一种方法 返回所选节点。我用过:

s = nuke.tcl("selected_nodes")
print s

我得到一些奇怪的名字,比如node3a7c000,但这些名字在任何事情上都有用 它调用一个节点,比如核弹音调()而且他们都在一条线上。我 试图将这些结果强制放入列表或元组中,如下所示:

s = nuke.tcl("selected_nodes")

print s

结果:node3a7c000 node3a7c400 node3a7c800

s = nuke.tcl("selected_nodes")

s2 = s.replace(" ","', '")

s3 = "(" + "'" + s2 + "'" + ")"

print s3

结果:('node3a7c000','node3a7c400','node3a7c800')

我的结果看起来有元组的标准构造,但是如果我尝试 为了调用元组中的第一个值,我得到了一个圆括号。这个 好像我创建的元组仍然是一个字符串。在

我能做些什么来收集所选节点的列表或元组吗 名字?我不知道我做错了什么,似乎我的最后一次 解决方案本应有效。在


Tags: 字符串名称列表节点名字tclnodes元组
1条回答
网友
1楼 · 发布于 2024-10-01 09:41:41

迭代每个节点时,需要将其名称添加到列表([]),然后返回该名称。例如:

names = []
for s in nuke.selectedNodes():
    n = s['name'].value()
    names.append(n)
print names

这将为您提供:

^{pr2}$

如果您熟悉列表理解,您还可以使用一个在一行中生成names

names = [s['name'].value() for s in nuke.selectedNodes()]

相关问题 更多 >