Writing /share/Web/wiki/data/cache/9/9c91611864ab7fc9dd8b7e44a5ed8af2.metadata failed
linux:python:python_tcl混合编程
差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
| linux:python:python_tcl混合编程 [2020/09/15 09:32] – zhangguo | linux:python:python_tcl混合编程 [2024/04/08 15:50] (当前版本) – [2. python zip tcl混合] zhangguo | ||
|---|---|---|---|
| 行 32: | 行 32: | ||
| ==== - 添加命令 ==== | ==== - 添加命令 ==== | ||
| + | 注:如果需要更多命令支持的话,可能需要自行查看'' | ||
| 利用createcommand方法将一个Python函数作为命令添加到Tcl解释器中。 | 利用createcommand方法将一个Python函数作为命令添加到Tcl解释器中。 | ||
| 行 63: | 行 63: | ||
| def py_add(a, b): | def py_add(a, b): | ||
| - | return int(a)+int(b) | + | return int(a)+int(b) |
| def tcl_py_add(*args): | def tcl_py_add(*args): | ||
| 行 83: | 行 83: | ||
| </ | </ | ||
| + | === - 使用注意 === | ||
| + | python的命令加入tcl解释器之后,python侧出现的类型check错误信息不会显示在tcl中(< | ||
| + | <color # | ||
| 行 168: | 行 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混合编程.1600133567.txt.gz · 最后更改: 2023/03/17 10:12 (外部编辑)