Python 编写telnetlib';s Telnet.interact()流到文件
我需要建立到telnet服务器的连接,该服务器持续广播信息,并将所有信息保存到一个文件中。为了测试,我使用了著名的ASCII星球大战,它位于tower.blinkenlights.nl上 本质上,我需要在Python中复制将以下命令输入Windows命令提示符时得到的结果:Python 编写telnetlib';s Telnet.interact()流到文件,python,telnet,telnetlib,Python,Telnet,Telnetlib,我需要建立到telnet服务器的连接,该服务器持续广播信息,并将所有信息保存到一个文件中。为了测试,我使用了著名的ASCII星球大战,它位于tower.blinkenlights.nl上 本质上,我需要在Python中复制将以下命令输入Windows命令提示符时得到的结果:telnet tower.blinkenlights.nl/f c:/randfolder/output.txt 下面确实建立了连接,并显示了终端中接收到的数据,但我没有幸将终端中看到的内容保存到文件中: import tel
telnet tower.blinkenlights.nl/f c:/randfolder/output.txt
下面确实建立了连接,并显示了终端中接收到的数据,但我没有幸将终端中看到的内容保存到文件中:
import telnetlib
HOST = "towel.blinkenlights.nl"
PORT = "23"
telnetObj=telnetlib.Telnet(HOST,PORT)
outF = open("output.txt", "a")
outF.write(telnetObj.interact())
telnetObj.close()
虽然在我看来,这是一个相当粗糙的解决方案,但使用stdout确实会根据需要将telnet流输出到一个文件中。运行此命令将创建并附加一个文件,其中包含在中断之前接收到的所有数据
import sys
import telnetlib
with open('output.txt', 'w') as output:
sys.stdout = output # this is where the magic happens
HOST = "towel.blinkenlights.nl"
PORT = "23"
telnetObj=telnetlib.Telnet(HOST,PORT)
outF = open("output.txt", "a")
outF.write(telnetObj.interact())
telnetObj.close()
然而,若对这种方法的不正确处理导致了程序中的混乱,那个么这并不奇怪。我认为把它作为一个独立的进程来运行是相当安全的