【问题标题】:how to run python scripts using tcl exec command如何使用 tcl exec 命令运行 python 脚本
【发布时间】:2011-07-26 05:14:26
【问题描述】:

我有一个 tcl 驱动程序脚本,它依次调用其他几个程序。 我想从我的 tcl 脚本中调用一个 python 脚本。 假设这是我的python脚本“1.py”

#!/usr/bin/python2.4
import os
import sys
try:
    fi = open('sample_+_file', 'w')
except IOError:
    print 'Can\'t open file for writing.'
    sys.exit(0)

tcl 脚本是“1.tcl”

#! /usr/bin/tclsh
proc call_python {} {
    exec python 1.py
}

这不会给出任何错误,但同时它不会执行 python 脚本中存在的操作。

什么应该替换1.tcl中的代码片段“exec python 1.py”来调用python脚本?可以用exec调用python脚本吗?

提前致谢!!

【问题讨论】:

  • 为什么不到处使用 Python?
  • 可以使用!但此时,我想重用我已有的 tcl 驱动程序。
  • @Keith 为什么不到处使用 TCL?
  • @hm,法拉利还是大众……我会选择什么?

标签: python exec tcl


【解决方案1】:

您的 tcl 脚本定义了一个执行 python 脚本的过程,但不调用该过程。添加对 tcl 脚本的调用:

#! /usr/bin/tclsh
proc call_python {} {
    set output [exec python helloWorld.py]
    puts $output
}

call_python

此外,通过exec 启动的进程写入标准输出的任何内容都不会显示在您的终端中。您需要从 exec 调用中捕获它,并且 print 是您自己明确的:

#! /usr/bin/tclsh
proc call_python {} {
    set output [exec python helloWorld.py]
    puts $output
}

call_python

【讨论】:

  • 谢谢,非常有用的脚本!有没有办法将一些变量传递给python文件?
  • 即使给出完整路径也找不到文件:/web/projop/packages/intranet-timesheet2/www/hours/y.py
猜你喜欢
  • 1970-01-01
  • 2016-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多