Python学习笔记20

FTP编程:FTP协议需要用两个端口,一个端口是用来登录,另一个端口用来数据传输和控制。一般是20 和21端口。

Python对FTP的支持是通过ftplib模块实现的,在使用时导入ftplib模块并实例化ftplib.FTP类对象,所有的FTP操作都需要使用这个对象来完成。

例:

HOST = 'ftp.mozilla.org'

f = ftplib.FTP(HOST)

FTP 对象的方法

方法                                  描述

login(user='anonymous',  passwd='', acct='')         登录到 FTP 服务器,所有的参数都是可选的

pwd()                       得到当前工作目录

cwd(path)                   把当前工作目录设置为 path

dir([path[,...[,cb]])  显示 path 目录里的内容,可选的参数 cb 是一个回调函数,它会被传给 retrlines()方法

nlst([path[,...])  与 dir()类似,但返回一个文件名的列表,而不是显示这些文件名

retrlines(cmd [, cb])  给定 FTP 命令(如“RETR filename”),用于下载文本文件。可选的回调函数 cb 用于处理文件的每一行

retrbinary(cmd, cb[, bs=8192[,ra]])              与 retrlines()类似,只是这个指令处理二进制文件。回调函数 cb用于处理每一块(块大小默认为 8K)下载的数据。

例:

f.retrbinary('RETR %s' % FILE,open(FILE, 'wb').write)

RETR <file_name> 命令是要下载该文件。

open(FILE, 'wb').write 对下载的二进制的每一块,写入到指定的文件中。

storlines(cmd, f)  给定 FTP 命令(如“STOR filename”),以上传文本文件。要给定一个文件对象 f

storbinary(cmd, f[, bs=8192])                    与 storlines()类似,只是这个指令处理二进制文件。要给定一个文件对象 f,上传块大小 bs 默认为 8Kbs=8192])

rename(old, new)            把远程文件 old 改名为 new

delete(path)                删除位于 path 的远程文件

mkd(directory)               创建远程目录

rmd(directory)              删除远程目录

quit()                      关闭连接并退出

电子邮件:

e-mail 邮件由消息头和可选的消息体组成,消息头是必须的,消息体是可选的。

e-mail 是怎么工作的?有一台发送电脑(发件人的消息从这里发送出去),和一台目的电脑(收件人的信件服务器)。

发送电脑要查询到某一台中间主机,这台中间主机能到达最后的收件主机。然后这台中间主机要找一台离目的主机更近一些的主机。所以,在发送主机和目的主机之间,可能会有多台叫做“跳板”的主机。如果你仔细看看你收到的 e-mail 的邮件头,你会看到一个“passport”标记,其中记录了邮件寄给你这一路上都到过了哪些地方。

e-mail 系统的各个组件。最主要的组件是消息传输代理(MTA)。这是一个在邮件交换主机上运行的一个服务器程序,它负责邮件的路由,队列和发送工作。它们就是邮件从源主机到目的主机所要经过的跳板。所以也被称为是“信息传输”的“代理”。

SMTP 是在因特网上 MTA 之间用于消息交换的最常用的 MTS。它被 MTA 用来把 e-mail 从一台主机传送到另一台主机。在你发 e-mail 的时候,你必须要连接到一个外部的 SMTP 服务器,这时,你的邮件程序是一个 SMTP 客户端。你的 SMTP 服务器也因此成为了你的消息的第一个跳板。

Python的SMTP支持:

模块smtplib和一个smtplib.SMTP类,实例化这个类完成e-mail的相关操作。

SMTP 对象的方法

方法                    描述

Sendmail

(from, to, msg[,

mopts, ropts])         把 msg 从 from 发送给 to(列表或元组)。ESMTP 设置(mopts)和收

件人设置(ropts)为可选。

quit()                  关闭连接,然后退出

login(user, passwd)     使用 user 用户和 passwd 密码登录到 SMTP 服务器

POP 和 IMAP

用于下载邮件的第一个协议叫邮局协议, 1984 年10 月公布。“邮局协议(POP)的目的是让用户的工作站可以访问邮箱服务器里的邮件。邮件要能从工作站通过简单邮件传

输协议(SMTP)发送到邮件服务器”。POP 协议的最新版本是第 3 版,也叫 POP3。

POP3 对象的常用方法

方法                描述

user(login)       发送用户名 login 到服务器,并等候服务器的正在等待用户密码的返回信息

pass_(passwd)  发送密码 passwd(在使用 user()登录之后使用)。如果登录失败,引发一

个异常

stat()  返回邮件的状态,一个长度为 2 的元组(msg_ct, mbox_siz):消息的数

量和消息的总大小也即字节数

list([msgnum])  stat()的扩展,从服务器返回长度为 3 的元组的消息列表(rsp, msg_list,

rsp_siz):服务器的返回信息,消息的列表,返回信息的大小。如果给了 msgnum 的话,只返回指定消息的数据。

retr(msgnum)  从服务器中得到消息 msgnum,并设置其“已读”标志。返回一个长度为

3 的元组(rsp, msglines, msgsiz):服务器的返回信息,消息 msgnum的所有行,消息的字节数

dele(msgnum)       把消息 msgnum 标记为删除,大多数服务器在调用 quit()后执行删除操作。

quit()               登出,保存修改(如,执行“已读”和“删除”标记等),解锁邮箱,结束连接,然后退出

另一个协议,叫交互式邮件访问协议(IMAP),现在被使用的 IMAP 版本是IMAP4rev1,它也被广泛地使用。事实上,当今世界上占有邮件服务器大多数市场的 Microsoft Exchange 就使用 IMAP 作为其下载机制。

Python支持的网络模块:

模块         描述

ftplib      FTP 协议客户端

gopherlib  Gopher 协议客户端

httplib     HTTP 和 HTTPS 协议客户端

imaplib     IMAP4 协议客户端

nntplib     NNTP protocol client 

nntplib     NNTP 协议客户端

poplib      POP3 协议客户端

smtplib    SMTP 协议客户端

telnetlib Telnet 协议客户端类

猜你喜欢

转载自blog.csdn.net/z54572/article/details/70139375
今日推荐