【问题标题】:Hey python to resolve tcl variable? Nuke嘿 python 来解析 tcl 变量?核弹
【发布时间】:2013-04-23 23:28:06
【问题描述】:

所以,我试图让 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) 是否会返回单词 image?

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

【问题讨论】:

  • 你能把我们链接到nuke.tcl的文档吗?
  • 目前不在 nuke 中,但基本上是:nuke.tcl(script, *args) 如果有帮助的话。同时我会上网看看

标签: python tcl nuke


【解决方案1】:

需要注意的两点:

  1. Tcl puts 不返回值。听起来你想要Tcl set,确实如此。

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

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

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

与其将其作为完整脚本调用,您似乎既可以使用非弃用版本,又可以通过以下方式获得所需的行为:

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

应该返回THIS 变量的值。

【讨论】:

  • 我虽然设置了变量,但没有返回它。我已经在别处设置了变量。我错了吗?
  • 只有一个参数,set 返回变量的当前值。有两个,它设置新值然后返回。
  • 啊,好的,谢谢。对 tcl 有点陌生,一定在文档中错过了
  • Tcl 的手册页有时略显不可知论,如果仔细阅读,通常会有所收获。如果您认为某个特定的文档太晦涩难懂,请针对 Tcl 提交错误报告,以便我们知道如何改进它。 (提交时,请在tcl.tk/man 下提及特定页面,以便我们知道您在说什么;这些都是来自源代码树的官方 HTML 构建。)但是,它们基本上是参考而不是教程。我们也有这些,但是是分开的……
【解决方案2】:

您还可以使用 TCL subst 命令对字符串中的所有 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多