FPGA Tcl/TK —— Tcl调用python文件并传参

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/joyfixing/article/details/52449419

Vivado Tcl调用Python脚本,根据工程规则形成file.list,然后载调用Vivado 的Tcl开始编译 ^ _ ^

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值