如何在python中将telnet输出日志保存到文本文件

如何在python中将telnet输出日志保存到文本文件,python,Python,我正在学习python,并尝试使用telnet连接我的卫星解码器。当我尝试通过telnet python脚本连接我的设备时,我可以成功地连接到该设备 但我想从文本文件开始捕获/保存并读取设备(通过telnet连接)的输出和日志。另外,我想发送一些命令来获取命令的输出并存储在文本文件中 HOST = "192.131.244.100" user = "user" password = "user" tn = Telnet(HOST) tn.read_until("Login: ") tn.wri

我正在学习python,并尝试使用telnet连接我的卫星解码器。当我尝试通过telnet python脚本连接我的设备时,我可以成功地连接到该设备

但我想从文本文件开始捕获/保存并读取设备(通过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()
请帮助我们如何在本地文本文件中捕获和写入通过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()
注意:一旦密码成功,我的设备将打印一些日志集,并且必须在本地文本文件中捕获,同时命令的输出也应记录在文本文件中

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输出的其他方法。

尝试以下方法:

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()

如果将命令的输出打印到此文本文件,则可以将stdout重定向到一个文件。如果恢复得好,OP正在寻找一种方法来模拟Python中的
tee
。标准模块中已经有类似的东西了吗???(除了使用
Popen(“tee”,…)
)之外,您似乎还可以将Telnet子类化,并覆盖
write
read
方法,首先写入文件,然后调用父方法。@SylvainLeroux,据我所知不是这样。您可以编写自己的想法您好,先生,我尝试了您的代码,但它不起作用。请在此处查看我的代码: