【发布时间】:2015-04-01 03:22:59
【问题描述】:
我正在学习 python 并尝试使用 telnet 连接我的卫星解码器。当我尝试通过 telnet python 脚本连接我的设备时,我可以成功连接到设备。
但我想从文本文件开始捕获/保存以及读取设备的输出和日志(通过 telnet 连接)。另外,我想发送一些命令来获取命令的输出并存储在文本文件中。
请帮助您了解如何捕获通过 telnet 连接的设备的输出日志并将其写入本地文本文件中。
注意:一旦密码成功,我的设备会打印一些日志,它必须在本地文本文件中捕获,命令的输出也应该记录在文本文件中。
HOST = "192.131.244.100"
user = "user"
password = "user"
tn = Telnet(HOST)
tn.read_until("Login: ")
tn.write(user + "\n")
tn.read_until("Password: ")
tn.write(password + "\n")
time.sleep(5)
tn.write("lr\n") # lr is command to pause logs
tn.write("version\n") # command to check running software version
tn.write("exit\n")
str_all = tn.read_all()
f = open("C:\\temp\\Logs\\output.txt", 'w')
f.write(str_all)
tn.close()
无法读取和保存从启动开始的所有日志。另外,请。让我知道在 putty 或 teraterm 中保存 telnet 输出的任何其他方法。
【问题讨论】:
-
你可以将标准输出重定向到一个文件
-
如果我恢复得很好,OP 正在寻找一种在 Python 中模拟
tee的方法。标准模块中是否已经有类似的东西??? (除了使用Popen("tee", ...)) -
似乎您可以继承 Telnet,并覆盖
write和read方法以首先写入文件,然后调用父方法。 -
@SylvainLeroux,据我所知不是这样。不过你可以自己写
标签: python