赞
踩
附加知识点
如何读取系统时间,time.strftime("%m%d")
如何读取系统当前目录 os.getcwd()
import os,time,tkinter
tcl = tkinter.Tcl()
i = 1
current_dir = os.getcwd()
print (current_dir)
date = time.strftime("%m%d")
filename = current_dir+"/run_"+str(date)+"v"_str(i)
tcl.eval("source " + script + "run.tcl")
print (tcl.getvar('name'))
对于以上代码段,
os.getcwd()的作用是获取当前路径,
date = time.strftime("%m%d")的作用是获取当前的日期,
通过tcl.getvar直接调用对应的名字
我这里在tcl中定义了一个变量name
set name a
我们使用下面的命令来得到name
tcl.getvar('name')
记得import tkinter
tcl = tkinter.Tcl()的作用是
利用tkinter.Tcl()得到一个Tcl解释器对象
然后执行它的eval方法,运行一小段Tcl代码。
下面这个链接中解释了基本的一些使用方法,需要注意的是,它使用的并不是python3 所以在命令上和我使用的有所不同,我使用的是python3.
链接: https://zhuanlan.zhihu.com/p/22882167?refer=python-dev.
import tkinter
tcl = tkinter.Tcl()
tcl.eval("source " + script + "run.tcl")
print (tcl.getvar('name'))
问题:在使用tcl中的变量的时候,我遇到了一个问题,就是在tcl中这个变量是个列表,但是在python3中我这里tcl.getvar(‘name’)进来变成了字符串,并且这个字符串以空格作为分隔符。
解决方法如下
1 如何将字符串转换为列表
f_name = tcl.getvar('f_name')
f_name_list = [f_name]
2 如何将tcl中的列表转换为python3中的列表
f_name = tcl.getvar('f_name')
f_name_list1 = f_name.split(" ")
f_name_list = [i for i in f_name_list1 if i != '']
其中
f_name.split
的作用是将f_name以空格为标志转换为列表
但是其转换成的列表是以下状态
比如
字符串"f name"转换为列表后为
[“f” " " “name”]
后面
f_name_list = [i for i in f_name_list1 if i != '']
的意思是,删除列表中的空格字符串。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。