我正在编写python脚本来自动化模拟器中的某些任务...要连接到模拟器的命令是telnet localhost <port>
。
我通过os.system(telnet localhost <port>)
发出的命令。
正在工作。
模拟器正在运行:
尝试:: 1 ...
已连接到本地主机。
转义字符为'^]'。
>
现在我必须通过python发出命令,但是我不能 在这个(>)里面,我必须给..我使用了telnet命令,但是没有用。
#!/usr/bin/env python
import os,re,telnetlib
host = "localhost"
port = "1111"
tn = telnetlib.Telnet(host, port)
tn.write("exit")
这是示例代码,但是不起作用。
答案 0 :(得分:0)
写入命令需要以字节为单位提供内容。试试这个:
import os,re,telnetlib
host = "google.com"
port = "80"
telnet_client = telnetlib.Telnet(host, port)
print('Connection established')
telnet_client.write(b'exit')
print('<END/>')
答案 1 :(得分:0)
您可能需要告诉telnetlib
至read until提示符,然后编写要发出的命令。
import os,re,telnetlib
host = "localhost"
port = "1111"
tn = telnetlib.Telnet(host, port)
tn.read_until(b">", timeout=10) # <- add this line
# tn.read_until(b"> ", timeout=10) # if prompt has space behind
tn.write(b"exit\n")
您可能还会发现此问题有帮助:Python Telnetlib read_until '#' or '>', multiple string determination?