2011-07-26 2 views
6

차례 차례로 여러 다른 프로그램을 호출하는 tcl 드라이버 스크립트가 있습니다. 내 tcl 스크립트에서 파이썬 스크립트를 호출하고 싶습니다. 이 내 파이썬 스크립트 "1.py"tcl exec 명령을 사용하여 파이썬 스크립트를 실행하는 방법

#!/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 스크립트가이 오류를 제공하지 않습니다

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

"1.tcl"입니다라고하지만 동시에 그것을 수행 할 수 있습니다 파이썬 스크립트에있는 작업을 수행하지 마십시오.

파이썬 스크립트를 호출하기 위해 1.tcl에서 "exec python 1.py"라는 코드 조각을 대체해야하는 것은 무엇입니까? exec를 사용하여 파이썬 스크립트를 호출 할 수 있습니까?

미리 감사드립니다.

+0

왜 모든 곳에서 파이썬을 사용하지 않는 것이 좋을까요? – Keith

+0

이 사용되었을 수 있습니다! 그러나이 시점에서 필자는 기존의 tcl 드라이버를 재사용하고 싶습니다. – usha

+1

@Keith 왜 TCL을 사방에 사용하지 않습니까? –

답변

11

tcl 스크립트는 파이썬 스크립트를 실행하는 프로 시저를 정의하지만 프로 시저를 호출하지 않습니다. 당신의 TCL 스크립트에 호출을 추가 :

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

call_python 

또한, exec를 통해 출시 프로세스에 의해 표준 출력에 기록 된 것도이 터미널에 표시되지 않습니다. exec 호출에서 캡처하여 인쇄물을 명시 적으로 명시해야합니다.

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

call_python 
관련 문제