使用 Python 将选定的节点名称放入 Nuke 中的列表或元组中
Get selected node names into a list or tuple in Nuke with Python
我正在尝试在 Nuke 中使用 Python 获取选定节点的名称列表。
我试过:
for s in nuke.selectedNodes():
n = s['name'].value()
print n
这给了我所选节点的名称,但作为单独的字符串。
我无法对它们做任何事情来组合每个字符串。如果我
选择了三个合并,在 Nuke 脚本编辑器中我得到:
结果:Merge3
合并2
合并 1
如果我将最后一个变量 n 括在方括号中,我得到:
Result: ['Merge3']
['Merge2']
['Merge1']
这就是我知道它们是独立字符串的方式。我找到了另一种方法
return 选定的节点。我用过:
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')
我的结果看起来具有元组的标准构造,但如果我尝试
从元组中调用第一个值,我得到一个括号。这个
就好像我创建的元组仍然是一个字符串。
我能做些什么来收集选定节点的列表或元组
名字?我不确定我做错了什么,这似乎是我的最后一次
解决方案应该有效。
当您遍历每个节点时,您需要将其名称添加到列表 ([]
),然后 return。例如:
names = []
for s in nuke.selectedNodes():
n = s['name'].value()
names.append(n)
print names
这会给你:
# Result: ['Merge3', 'Merge2', 'Merge1']
如果你熟悉列表理解,你也可以使用一个在一行中制作 names
:
names = [s['name'].value() for s in nuke.selectedNodes()]
我正在尝试在 Nuke 中使用 Python 获取选定节点的名称列表。 我试过:
for s in nuke.selectedNodes():
n = s['name'].value()
print n
这给了我所选节点的名称,但作为单独的字符串。 我无法对它们做任何事情来组合每个字符串。如果我 选择了三个合并,在 Nuke 脚本编辑器中我得到:
结果:Merge3 合并2 合并 1
如果我将最后一个变量 n 括在方括号中,我得到:
Result: ['Merge3']
['Merge2']
['Merge1']
这就是我知道它们是独立字符串的方式。我找到了另一种方法 return 选定的节点。我用过:
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')
我的结果看起来具有元组的标准构造,但如果我尝试 从元组中调用第一个值,我得到一个括号。这个 就好像我创建的元组仍然是一个字符串。
我能做些什么来收集选定节点的列表或元组 名字?我不确定我做错了什么,这似乎是我的最后一次 解决方案应该有效。
当您遍历每个节点时,您需要将其名称添加到列表 ([]
),然后 return。例如:
names = []
for s in nuke.selectedNodes():
n = s['name'].value()
names.append(n)
print names
这会给你:
# Result: ['Merge3', 'Merge2', 'Merge1']
如果你熟悉列表理解,你也可以使用一个在一行中制作 names
:
names = [s['name'].value() for s in nuke.selectedNodes()]