如何使用tcl exec命令运行python脚本

时间:2011-07-26 05:14:27

标签: python exec tcl

我有一个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脚本

提前致谢!!

1 个答案:

答案 0 :(得分:14)

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

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

call_python

此外,通过exec启动的流程写入stdout的任何内容都不会显示在您的终端中。你需要从exec调用中捕获它,并且自己打印:

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

call_python