我正在尝试从python运行TCL脚本。我正在使用的某些软件中嵌入了一个非常具体的TCL包,我需要告诉python解释器(或TKinter?)这个包的位置。这是我到目前为止所尝试的内容。
>>> import Tkinter
>>> r = Tkinter.Tk()
>>> r.tk.eval('lappend auto_path C:/Program Files (x86)/Ixia/IxNetwork/7.0-EA/tcl8.4/bin')
>>> r.tk.eval('lappend auto_path C:\\Program Files (x86)\\Ixia\\IxNetwork\7.0-EA\\tcl8.4\\bin\\')
'{C:\\Python26\\tcl\\tcl8.5} C:/Python26/tcl C:/lib {C:\\Python26\\tcl\\tk8.5} {C:\\Python26\\tcl\\tk8.5/ttk} C:/Program Files (x86)/Ixia/IxNetwork/7.0-EA/tcl8.4/bin C:Program Files (x86)IxiaIxNetwork\x07.0-EA\\tcl8.4\x08in\\\\'
我想使用以下从Windows开始菜单复制的TCL shell:
"C:\Program Files (x86)\Ixia\IxOS\6.40-EA\TclScripts\bin\wish84.exe" "C:\Program Files (x86)\Ixia\IxOS\6.40-EA\TclScripts\bin\IxiaWish.tcl"
首先,有人可以告诉我为什么在开始菜单快捷方式目标中有两个项目被引用?我可以在python中访问我的TCL吗?
从上面可以看出,我尝试将此包附加到auto_path,但是字符存在问题。有谁知道角色混淆的原因?
答案 0 :(得分:2)
我不明白你想要完成什么。如果你想要做的就是执行以下命令:
"C:\Program Files (x86)\Ixia\IxOS\6.40-EA\TclScripts\bin\wish84.exe" "C:\Program Files (x86)\Ixia\IxOS\6.40-EA\TclScripts\bin\IxiaWish.tcl"
那么为什么不使用subprocess
?这条线上的东西:
import subprocess
command = [
r'C:\Program Files (x86)\Ixia\IxOS\6.40-EA\TclScripts\bin\wish84.exe',
r'C:\Program Files (x86)\Ixia\IxOS\6.40-EA\TclScripts\bin\IxiaWish.tcl'
]
p = subprocess.Popen(commands,
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
stdout, stderr = p.communicate()