Как запустить скрипты Python с помощью команды tcl exec - PullRequest
8 голосов
/ 26 июля 2011

У меня есть скрипт драйвера tcl, который в свою очередь вызывает несколько других программ. Я хочу вызвать скрипт Python из моего скрипта tcl. допустим, это мой скрипт на питоне "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.

Что должно заменить фрагмент кода "exec python 1.py" в 1.tcl, чтобы вызвать скрипт python? Может ли скрипт Python вызываться с помощью exec?

Заранее спасибо !!

1 Ответ

14 голосов
/ 26 июля 2011

Ваш скрипт tcl определяет процедуру для выполнения скрипта python, но не вызывает процедуру.Добавьте вызов к вашему 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
...