1

我正在尝试从 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,但字符存在问题。有谁知道为什么字符混在一起?

4

1 回答 1

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()
于 2013-10-09T06:38:55.467 回答