我有以下代码:类型错误使用Telnet.write()
try:
tn = Telnet(host, str(port))
except Exception as e:
print("Connection cannot be established", e)
traceback.print_exc()
print("You are connected")
tn.write('command?'+'\r\n')
while True:
line = tn.read_until("\n")
当我运行的机器X上的一切这段代码工作得很好,但是当我尝试在不同的运行相同的代码机器我结束了以下错误:
Traceback (most recent call last):
File
"C:/Users/admin/Documents/Projects/terminalManager/terminalManager.py", line 50, in <module>
terminalManager()
File
"C:/Users/admin/Documents/Projects/terminalManager/terminalManager.py", line 16, in __init__
self.connect(terminalBganIp, terminalBganPort)
File "C:/Users/admin/Documents/Projects/terminalManager/terminalManager.py", line 34, in connect
tn.write('AT_IGPS?'+'\r\n')
File "C:\Program Files (x86)\Python\Python3.6.1\lib\telnetlib.py", line 287, in write
if IAC in buffer:
TypeError: 'in <string>' requires string as left operand, not bytes
我做错了什么或是第二台机器搞乱了我?
编辑:
,当我用我的第二台机器的一切空闲调试工作。它似乎不正常运行,有没有什么我可以做的解决这个问题?
作为[文件](https://docs.python.org /3/library/telnetlib.html#telnetlib.Telnet.write)指出,'Telnet.write()'函数期望传递一个参数,它是一个字节字符串,而不是一个字符串 - 所以你需要转换'' AT_IGPS?'+'\ r \ n''字符串不会显示在您的代码中。两台机器都运行相同版本的Python(这可能在Python 2和Python 3之间改变)? – martineau