我正在尝试在 Nuke 中使用 Python 获取所选节点的名称列表。我努力了:
for s in nuke.selectedNodes():
n = s['name'].value()
print n
这给了我所选节点的名称,但作为单独的字符串。我无法对他们做任何事情来组合每个字符串。如果我选择了三个合并,在 Nuke 脚本编辑器中我会得到:
结果:合并 3 合并 2 合并 1
如果我将最后一个变量 n 括在括号中,我会得到:
Result: ['Merge3']
['Merge2']
['Merge1']
这就是我知道它们是单独的字符串的方式。我找到了另一种返回选定节点的方法。我用了:
s = nuke.tcl("selected_nodes")
print s
我得到了奇怪的名字,比如 node3a7c000,但是这些名字在任何调用节点的东西中都有效,比如 nuke.toNode(),它们都在一行上。我试图将这些结果强制转换为列表或元组,如下所示:
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')
我的结果看起来具有元组的标准构造,但如果我尝试从元组中调用第一个值,我会得到一个括号。这就好像我创建的元组仍然是一个字符串。
我能做些什么来收集选定节点名称的列表或元组吗?我不确定我做错了什么,似乎我的最后一个解决方案应该有效。