3

所以,我试图让 python 打印一个包含 tcl 变量的字符串,以及该变量的结果。我正在使用 nuke,以防这对我的代码很重要。

[set THIS image] 
Ln = "/Test/still/testing/$THIS\_clean_v001"
print(Ln) # this prints exactly the above

G = nuke.tcl('[puts "$THIS"] ') 

是否会print(G)返回单词图像?

然后我可以把它分进去。问题是我输入的文本字段 tcl 在程序中很好地解决了它,但是一旦我将它发送到处理它就需要$THIS字面意思。

4

2 回答 2

4

有两点需要注意:

  1. Tclputs不返回值。听起来你想要Tclset,确实如此。

  2. nuke.tclhttp://www.nukepedia.com/reference/Python 上的文档表明

    tcl(command, arg, arg, ...)

    运行 tcl 命令。参数必须是字符串并传递给命令。如果没有给出参数并且命令中有空格,那么它会被解释为一个 tcl 程序(这是折旧的)

而不是调用它作为一个完整的脚本,似乎你可以使用非弃用版本并通过使用获得你想要的行为:

G = nuke.tcl("set", "THIS")

哪个应该重新输入THIS变量的值。

于 2013-04-24T00:37:20.200 回答
0

subst您还可以使用 TCL命令对字符串中的所有 TCL 变量进行一次性扩展。

nuke.tcl('set', 'THIS', 'image')
p = '/Test/still/testing/$THIS\_clean_v001'
print nuke.tcl('subst', p)

其结果将是正确扩展的字符串:'/Test/still/testing/image_clean_v001'

subst 的文档可以在这里找到:http ://www.tcl.tk/man/tcl8.4/TclCmd/subst.htm

于 2014-08-29T19:29:06.120 回答