2011-07-26 291 views
6

我有一个tcl驱动程序脚本,该脚本又调用其他几个程序。 我想从我的tcl脚本调用python脚本。 可以说,这是我的Python脚本“1.py”如何使用tcl exec命令运行python脚本

#!/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脚本吗?

在此先感谢!

+0

为什么不只是使用Python到处?可能已经使用了 – Keith

+0

!但是在这个时候,我想重用我现有的tcl驱动程序。 – usha

+1

@凯蒂为什么不使用TCL? –

回答

11

您的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