2011-07-26 371 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