我正在尝试使用 Tkinter 将代码从 TCL 转换为 python。我想知道 Tkinter 中“spawn ssh”、“expect”和“send”的等效代码是什么?例如,我的简单 tcl 程序将类似于:
spawn ssh root@138.120.###.###
expect "(yes/no)?" {send -- "yes\r"}
expect "password" {send -- "thepassword\r"}
您可以尝试使用pexpect。
Expect 用于自动化其他命令行工具。
编辑:当然,您可以尝试package require Expect
通过 Tkinter 执行,但是与纯 Tcl 脚本相比有什么好处呢?毕竟你写了 Tcl 代码,然后用 python 包装。
另一个编辑:Tkinter 用于从 python 访问 Tk(很酷的 GUI 工具包:P),它通过在某处调用 Tcl 命令来工作。因此,您可以将每个 tcl 程序转换为 python(当然,如果您安装了正确的 tcl 库)。
pxpect有一个名为 pxssh 的模块,它可以完成操作简单 ssh 会话的大量工作。我发现这对于高度自动化来说是不够的,因此我将远程编写为一个附加组件来增加错误处理。
使用 pxssh
from pxssh import pxssh
p = pxssh()
p.login('host', 'user', 'password')
p.send('command')
使用遥控器
from remote import remote
r = remote('host', 'user', 'password')
if r.login():
r.send('command')
我不确定 Tkinter 用例,我唯一的假设是您正在使用它来制作 gui,并且有很多教程。我之前使用过http://sebsauvage.net/python/gui/,它比较了 Tkinter 和 wxPython。