Writing /share/Web/wiki/data/cache/9/9c91611864ab7fc9dd8b7e44a5ed8af2.metadata failed
linux:python:python_tcl混合编程
差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
| linux:python:python_tcl混合编程 [2020/10/24 20:15] – [1.2 添加命令] zhangguo | linux:python:python_tcl混合编程 [2024/04/08 15:50] (当前版本) – [2. python zip tcl混合] zhangguo | ||
|---|---|---|---|
| 行 32: | 行 32: | ||
| ==== - 添加命令 ==== | ==== - 添加命令 ==== | ||
| + | 注:如果需要更多命令支持的话,可能需要自行查看'' | ||
| 利用createcommand方法将一个Python函数作为命令添加到Tcl解释器中。 | 利用createcommand方法将一个Python函数作为命令添加到Tcl解释器中。 | ||
| 行 84: | 行 84: | ||
| === - 使用注意 === | === - 使用注意 === | ||
| - | python的命令加入tcl解释器之后,python侧出现的类型check错误信息不会显示在tcl中,这有时候会给定位带来非常大的困扰。 | + | python的命令加入tcl解释器之后,python侧出现的类型check错误信息不会显示在tcl中(<color # |
| - | 一定要注意从tcl侧输入的参数传递到python之后都是字符串,如果原来python的参数是int的需要使用类型转换。 | + | <color #ed1c24>一定要注意从tcl侧输入的参数传递到python之后都是字符串,如果原来python的参数是int的需要使用类型转换。</ |
| 行 171: | 行 171: | ||
| 不要用这种方法获得简单变量以及list的值。 | 不要用这种方法获得简单变量以及list的值。 | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== - python zip tcl混合 ===== | ||
| + | **测试程序** | ||
| + | {{linux: | ||
| + | |||
| + | |||
| + | <code python [enable_line_numbers=" | ||
| + | # | ||
| + | |||
| + | import tkinter | ||
| + | |||
| + | |||
| + | import zipfile | ||
| + | import io | ||
| + | |||
| + | |||
| + | fh = open(' | ||
| + | fbuf = fh.read() | ||
| + | fh.close() | ||
| + | |||
| + | fio = io.BytesIO() | ||
| + | |||
| + | fio.write(fbuf) | ||
| + | |||
| + | |||
| + | |||
| + | # zfile = zipfile.ZipFile(' | ||
| + | zfile = zipfile.ZipFile(fio, | ||
| + | for i in zfile.filelist: | ||
| + | bin = zfile.read(i.filename) | ||
| + | line = str(bin, encoding = " | ||
| + | |||
| + | interp = tkinter.Tcl() | ||
| + | interp.eval(line) | ||
| + | |||
| + | </ | ||
| + | | ||
| + | **运行结果** | ||
| + | |||
| + | < | ||
| + | (base) D: | ||
| + | abc01 | ||
| + | abc02 | ||
| + | opq01 | ||
| + | opq02 | ||
| + | </ | ||
linux/python/python_tcl混合编程.1603541748.txt.gz · 最后更改: 2023/03/17 10:12 (外部编辑)