【问题标题】:How to save telnet output logs to a text file in python如何将telnet输出日志保存到python中的文本文件
【发布时间】: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


【解决方案1】:

尝试类似:

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")
OUTPUT = tn.read_until(":~>") #Change :~> to what the telnet displays when finished parsing
FILE=open(C:\\temp\\Logs\\output.txt", "w")
FILE.write(OUTPUT)
FILE.close()
tn.close()

应该将命令的输出打印到这个文本文件中

【讨论】:

猜你喜欢
  • 2021-07-13
  • 1970-01-01
  • 1970-01-01
  • 2018-08-08
  • 1970-01-01
  • 1970-01-01
  • 2014-01-25
  • 2013-03-12
  • 2014-09-21
相关资源
最近更新 更多