tcl调用python文件并传参

项目开发中需要用到tcl调用python实现一些tcl无法实现的功能,mark下。

tcl调用python文件无传参

首先新建一个add.py文件,该文件实现两个数的相加并返回结果,python中函数返回值用return实现,如果想要让python文件中值返回给tcl程序必须在python中print该值,add.py文件代码如下:

#-*- coding: UTF-8 -*-  
def add(a,b):
    return a+b

sum = add(10,20)
print sum   

然后新建一个add.tcl文件,在该文件中调用python文件,代码很简单,如下:

set sum [exec python add.py]
puts $sum

此时sum的值为30,表明调用add.py成功。

tcl调用python文件有传参

python文件接收参数通过sys模块实现,比如执行python add.py 10 20,在add.py中print sys.argv['add.py', '10', '20'],那么sys.argv[1]和sys.argv[2]就分别等于10和20了,add.py代码如下:

# -*- coding: UTF-8 -*-  
import sys

def add(a,b):
    return int(a)+int(b)

sum = add(sys.argv[1],sys.argv[2])
print sum

相应的add.tcl代码如下

set sum [exec python add.py 10 20]
puts $sum

此时输出结果为30

python调用tcl

顺便讲讲python如何调用tcl,首先我们写一个tcl脚本,命名为test.tcl,文件内容如下,这个脚本里只有一个函数,返回两个值的和,非常简单。

proc add {n m} {
    return [expr $n+$m]
}

接下来我们看看Python脚本,其实是在Python中建立了一个tcl解释器,然后在python中就可以用tcl解释器执行tcl中的函数了,此时tcl_str等于30。

from Tkinter import Tcl
#建立一个tcl的解释器
tcl = Tcl()
#导入tcl文件
tcl.eval('source test.tcl')
#调用函数,tcl_str为返回值
tcl_str=tcl.eval('add 10 20')
print tcl_str

输出30

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值