如何使用Tcl exec命令运行Python脚本
我有一个tcl驱动脚本,这个脚本会调用其他几个程序。
我想从我的tcl脚本中调用一个python脚本。
假设我的python脚本叫“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脚本里的操作。
在1.tcl中,应该用什么来替换“exec python 1.py”这段代码,才能正确调用python脚本呢?用exec能调用python脚本吗?
提前谢谢大家!!
1 个回答
18
你的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