2011-07-26 16 views
6

Tengo un script de controlador tcl que a su vez llama a varios otros programas. Quiero invocar un script python desde mi script tcl. digamos que este es mi pitón guión "1.py"cómo ejecutar secuencias de comandos de Python con el comando 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) 

y TCL script es "1.tcl"

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

Esto no da ningún error, pero al mismo tiempo lo hace no realizar las operaciones presentes en el script python.

¿Qué debería reemplazar el fragmento de código "exec python 1.py" en 1.tcl para invocar el script de python? ¿Se puede invocar una secuencia de comandos python con exec?

Gracias de antemano!

+0

¿Por qué no usar Python en todas partes? – Keith

+0

podría haber sido utilizado! Pero en este punto del tiempo, quiero reutilizar el controlador tcl ya existente que tengo. – usha

+1

@Keith ¿por qué no usar TCL en todas partes? –

Respuesta

11

Su script tcl define un procedimiento para ejecutar un script de python, pero no llama al procedimiento. Añadir una llamada a su script TCL:

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

call_python 

También, cualquier cosa escrita en la salida estándar por el proceso iniciado a través de exec no conseguirá que aparece en su terminal. Tendrá que capturarlo de la llamada del ejecutivo e imprimirlo usted mismo de manera explícita:

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

call_python 
Cuestiones relacionadas