wto4883204 发表于 2014-08-15 10:45

问一个talnetlib模块的问题

import getpass
import telnetlib

HOST = "localhost"
user = input("Enter your remote account: ")
password = getpass.getpass()

tn = telnetlib.Telnet(HOST)

tn.read_until(b"login: ")
tn.write(user.encode('ascii') + b"\n")
if password:
    tn.read_until(b"Password: ")
    tn.write(password.encode('ascii') + b"\n")

tn.write(b"ls\n")
tn.write(b"exit\n")

print(tn.read_all().decode('ascii'))


上面是python34的标准函数库DOC里面的例子,在python34目录下找到的,我试过是可以运行的。

问题有:
1. 上面的 tn = telnetlib.Telnet(HOST) 的 tn 究竟是什么?是模块Telnetlib吗?
2. tn = telnetlib.Telnet(HOST)    #这句话又代表什么?为什么要赋给 tn 啊?
3. 为什么它引用函数时候都要在原括号里面加个b,是不是所有引用函数的情况下都需要加b呢?例如:(b"login: ")

icymirror 发表于 2014-08-15 11:17

1. tn是个变量
2. 应当是telnet的套接字连接
3. 没有用过python3,不过b应当是指byte方式访问,应当因为tn是使用二进制方式进行数据的读写,所以需要进行相应的数据格式转化。

Linux_manne 发表于 2014-08-15 16:48

你这个。第一个问题就让人厥倒......

wto4883204 发表于 2014-08-15 20:29

我也知道是变量,我主要想问,赋值给tn后会发生什么事情?回复 3# Linux_manne


   

Linux_manne 发表于 2014-08-16 15:08

回复 4# wto4883204


   tn是telnetlib 的一个实例化对象
   然后tn 可以调用telnetlib 模块中的方法
页: [1]
查看完整版本: 问一个talnetlib模块的问题