非常教程

Python参考手册

网络 | Internet

nntplib

源代码: Lib / nntplib.py

该模块定义了NNTP实现NNTP协议客户端的类。它可以用来实现新闻阅读器或海报,或自动新闻处理器。有关NNTP(网络新闻传输协议)的更多信息,请参阅Internet RFC 977

以下是如何使用它的两个小例子。列出关于新闻组的一些统计信息并打印最近10篇文章的主题:

>>> s = NNTP('news.gmane.org')
>>> resp, count, first, last, name = s.group('gmane.comp.python.committers')
>>> print 'Group', name, 'has', count, 'articles, range', first, 'to', last
Group gmane.comp.python.committers has 1071 articles, range 1 to 1071
>>> resp, subs = s.xhdr('subject', first + '-' + last)
>>> for id, sub in subs[-10:]: print id, sub
...
1062 Re: Mercurial Status?
1063 Re: [python-committers]  (Windows) buildbots on 3.x
1064 Re: Mercurial Status?
1065 Re: Mercurial Status?
1066 Python 2.6.6 status
1067 Commit Privileges for Ask Solem
1068 Re: Commit Privileges for Ask Solem
1069 Re: Commit Privileges for Ask Solem
1070 Re: Commit Privileges for Ask Solem
1071 2.6.6 rc 2
>>> s.quit()
'205 Bye!'

要从文件发布文章(这里假定文章有有效的标题,并且您有权在特定的新闻组上发布文章):

>>> s = NNTP('news.gmane.org')
>>> f = open('articlefile')
>>> s.post(f)
'240 Article posted successfully.'
>>> s.quit()
'205 Bye!'

模块本身定义了以下项目:

class nntplib.NNTP(host[, port [, user[, password [, readermode] [, usenetrc]]]])

返回类的新实例NNTP,表示与主机主机上运行的NNTP服务器的连接,并在端口端口侦听。默认端口是119.如果提供了可选的用户密码,或者如果存在合适的凭证/.netrc并且可选标记usenetrc为true(默认值),则使用AUTHINFO USERand AUTHINFO PASS命令来标识和验证服务器的用户。如果可选标志readermode为true,那么amode reader命令在执行认证之前发送。如果您连接到本地计算机上的NNTP服务器并且打算调用特定于阅读器的命令(例如,),则有时需要阅读器模式group。如果你意想不到NNTPPermanentError的话,你可能需要设置readermodereadermode默认为Noneusenetrc默认为True

在版本2.4中更改:添加了usenetrc参数。

exception nntplib.NNTPError

从标准异常派生Exception,这是nntplib模块引发的所有异常的基类。

exception nntplib.NNTPReplyError

从服务器收到意外回复时引发异常。为了向后兼容,异常error_reply相当于这个类。

exception nntplib.NNTPTemporaryError

收到400-499范围内的错误代码时引发异常。为了向后兼容,异常error_temp相当于这个类。

exception nntplib.NNTPPermanentError

当收到500-599范围内的错误代码时引发异常。为了向后兼容,异常error_perm相当于这个类。

exception nntplib.NNTPProtocolError

从服务器收到的回复不是以范围1-5中的数字开头时引发的异常。为了向后兼容,异常error_proto相当于这个类。

exception nntplib.NNTPDataError

响应数据中出现错误时引发异常。为了向后兼容,异常error_data相当于这个类。

1. NNTP对象

NNTP实例具有以下方法。该响应被返回的几乎所有方法的返回元组的第一项是服务器的响应:一个字符串开头的三位数代码。如果服务器的响应表明有错误,则该方法引发上述例外之一。

NNTP.getwelcome()

返回服务器发送的回复初始连接的欢迎消息。(此消息有时包含可能与用户有关的免责声明或帮助信息。)

NNTP.set_debuglevel(level)

设置实例的调试级别。这将控制打印的调试输出量。缺省值,0不会产生调试输出。值1会产生适量的调试输出,通常每个请求或响应只有一行。值2或更高值会产生最大数量的调试输出,记录连接上发送和接收的每条线路(包括消息文本)。

NNTP.newgroups(date, time[, file])

发送一个NEWGROUPS命令。该日期参数应该是以下形式的字符串'yymmdd'指示日期和时间的格式应的字符串'hhmmss'表示的时间。返回组合对(response, groups),其中是自给定日期和时间以来新增的组名列表。如果提供了文件参数,则NEWGROUPS命令的输出将存储在文件中。如果file是一个字符串,那么该方法将打开一个具有该名称的文件对象,写入并关闭它。如果file是一个文件对象,那么它将开始调用write()它来存储命令输出的行。如果提供了文件,则返回列表是一个空列表。

NNTP.newnews(group, date, time[, file])

发送一个NEWNEWS命令。在这里,是一个组名,或者'*'日期时间的含义与此相同newgroups()。返回一对邮件(response, articles),其中articles是邮件ID列表。如果提供了文件参数,则NEWNEWS命令的输出将存储在文件中。如果file是一个字符串,那么该方法将打开一个具有该名称的文件对象,写入并关闭它。如果file是一个文件对象,那么它将开始调用write()它来存储命令输出的行。如果提供了文件,则返回的列表是一个空列表。

NNTP.list([file])

发送一个LIST命令。返回一对(response, list),其中列表是元组列表。每个元组的形式(group, last, first, flag),其中是一组名,最后第一是最后和第一篇文章的数字(如字符串),和标志'y',如果帖子是允许的,'n'如果不是,'m'如果新闻组主持。(注意排序:最后第一个)。如果提供了文件参数,那么LIST命令的输出存储在一个文件中。如果file是一个字符串,那么该方法将打开一个具有该名称的文件对象,写入并关闭它。如果文件是一个文件对象,那么它将开始调用write()它来存储命令输出的行。如果提供了文件,则返回的列表是一个空列表。

NNTP.descriptions(grouppattern)

发送LIST NEWSGROUPS命令,其中grouppattern是RFC2980中指定的wildmat字符串(它基本上与DOS或UNIX shell通配符字符串相同)。返回一个pair (response, list),其中list是包含的元组列表(name, title)

2.4版本中的新功能。

NNTP.description(group)

获取一个组的描述。如果多个组匹配(如果“组”是真正的自变量字符串),则返回第一个匹配。如果没有组匹配,则返回一个空字符串。

这消除了来自服务器的响应代码。如果需要回应代码,请使用descriptions()

2.4版本中的新功能。

NNTP.group(name)

发送一个GROUP命令,其中name是组名称。返回一个元组(response, count, first, last, name),其中count是组中的(估计)数量的文章,首先是组中的第一个文章编号,last是组中的最后一个文章编号,name是组名称。数字以字符串形式返回。

NNTP.help([file])

发送一个HELP命令。返回一对(response, list),其中列表是帮助字符串的列表。如果提供了文件参数,则HELP命令的输出将存储在文件中。如果file是一个字符串,那么该方法将打开一个具有该名称的文件对象,写入并关闭它。如果file是一个文件对象,那么它将开始调用write()它来存储命令输出的行。如果提供了文件,则返回的列表是一个空列表。

NNTP.stat(id)

发送一个STAT命令,其中id是消息ID(用'<'and 括起来'>')或商品编号(作为字符串)。返回一个triple (response, number, id),其中number是商品编号(作为字符串),id是消息ID(用'<'和括起来'>')。

NNTP.next()

发送一个NEXT命令。返回stat()

NNTP.last()

发送一个LAST命令。返回stat()

NNTP.head(id)

发送一个HEAD命令,其中id的含义与以前相同stat()。返回一个元组(response, number, id, list),其中前三个元素与for相同stat()list是文章标题列表(一个没有解释的行列表,没有尾随换行符)。

NNTP.body(id[, file])

发送一个BODY命令,其中id的含义与以前相同stat()。如果提供了文件参数,则主体存储在文件中。如果file是一个字符串,那么该方法将打开一个具有该名称的文件对象,写入并关闭它。如果文件是一个文件对象,那么它将开始调用write()它来存储正文的行。返回head()。如果提供了文件,则返回的列表是一个空列表。

NNTP.article(id)

发送一个ARTICLE命令,其中id的含义与以前相同stat()。返回head()

NNTP.slave()

发送一个SLAVE命令。返回服务器的响应

NNTP.xhdr(header, string[, file])

发送XHDR命令。该命令没有在RFC中定义,但是是一个常见的扩展。的报头参数是一个报头的关键字,例如'subject'。该字符串参数应具有的形式'first-last',其中第一最后一个是第一个和最后的文章编号,以搜索。返回一对(response, list),其中list是对的列表(id, text),其中id是商品编号(作为字符串),text是该文章请求的标题的文本。如果提供了文件参数,则XHDR命令的输出将存储在文件中。如果文件是一个字符串,然后该方法将打开一个名称为文件对象,写入并关闭它。如果file是一个文件对象,那么它将开始调用write()它来存储命令输出的行。如果提供了文件,则返回的列表是一个空列表。

NNTP.post(file)

使用该POST命令发布文章。的文件参数是其使用其读直至EOF一个打开的文件对象readline()的方法。它应该是一篇格式良好的新闻文章,包括必需的标题。该post()方法自动转义以.。开头的行。

NNTP.ihave(id, file)

发送IHAVE命令。ID是一个消息ID(包含在'<''>')。如果响应不是错误,请按照该方法处理文件post()

NNTP.date()

返回一个三元组(response, date, time),其中包含当前日期和时间以适合于newnews()newgroups()方法的形式。这是一个可选的NNTP扩展,并且可能不被所有服务器支持。

NNTP.xgtitle(name[, file])

处理一个XGTITLE命令,返回一个对(response, list),其中list是包含的元组列表(name, title)。如果提供了文件参数,则XGTITLE命令的输出将存储在文件中。如果file是一个字符串,那么该方法将打开一个具有该名称的文件对象,写入并关闭它。如果file是一个文件对象,那么它将开始调用write()它来存储命令输出的行。如果提供了文件,则返回的列表是一个空列表。这是一个可选的NNTP扩展,并且可能不被所有服务器支持。

RFC2980表示“建议不要使用此扩展名”。使用descriptions()description()替代。

NNTP.xover(start, end[, file])

返回一对(resp, list)列表是一个元组列表,其中一个用于由开始结束文章编号分隔的范围中的每篇文章。每个元组都是这种形式(article number, subject, poster, date, id, references, size, lines)。如果提供了文件参数,则XOVER命令的输出将存储在文件中。如果file是一个字符串,那么该方法将打开一个具有该名称的文件对象,写入并关闭它。如果file是一个文件对象,那么它将开始调用write()它来存储命令输出的行。如果提供了文件,则返回的列表是一个空列表。这是一个可选的NNTP扩展,并且可能不被所有服务器支持。

NNTP.xpath(id)

返回一个对(resp, path),其中path是具有消息ID 标识的文章的目录路径。这是一个可选的NNTP扩展,并且可能不被所有服务器支持。

NNTP.quit()

发送一个QUIT命令并关闭连接。一旦调用了这个方法,就不应该调用NNTP对象的其他方法。

Python

Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989年发明,第一个公开发行版发行于1991年。 Python 是纯粹的自由软件, 源代码和解释器 CPython 遵循 GPL 协议。Python 语法简洁清晰,特色之一是强制用空白符( white space )作为语句缩进。

主页 https://www.python.org/
源码 https://github.com/python/cpython
版本 2.7
发布版本 2.7.13

Python目录

1.内置常量 | Built-in Constants
2.内置例外 | Built-in Exceptions
3.内置函数 | Built-in Functions
4.内置类型 | Built-in Types
5.编译器 | Compiler
6.加密 | Cryptography
7.数据压缩 | Data Compression
8.数据持久性 | Data Persistence
9.数据类型 | Data Types
10.调试和分析 | Debugging & Profiling
11.开发工具 | Development Tools
12.文件和目录访问 | File & Directory Access
13.文件格式 | File Formats
14.构架 | Frameworks
15.输入 | Importing
16.输入/输出 | Input/ouput
17.国际化 | Internationalization
18.网络 | Internet
19.网络数据 | Internet Data
20.翻译 | Interpreters
21.语言 | Language
22.记录 | Logging
23.Mac OS
24.MS Windows
25.多媒体 | Multimedia
26.联网 | Networking
27.数字与数学 | Numeric & Mathematical
28.操作系统 | Operating System
29.可选操作系统 | Optional Operating System
30.限制执行 | Restricted Execution
31.运行 | Runtime
32.SGI IRIX
33.软件包装与分销 | Software Packaging & Distribution
34.字符串 | String
35.结构化标记 | Structured Markup
36.Tk
37.Unix
38.Python 简介
39.Python pass 语句
40.Python 循环嵌套
41.Python 运算符
42.Python log10() 函数
43.Python log() 函数
44.Python floor() 函数
45.Python fabs() 函数
46.Python exp() 函数
47.Python cmp() 函数
48.Python ceil() 函数
49.Python abs() 函数
50.Python Number(数字)
51.Python pow() 函数
52.Python modf() 函数
53.Python min() 函数
54.Python max() 函数
55.Python asin() 函数
56.Python acos() 函数
57.Python uniform() 函数
58.Python shuffle() 函数
59.Python seed() 函数
60.Python random() 函数
61.Python randrange() 函数
62.Python choice() 函数
63.Python sqrt() 函数
64.Python round() 函数
65.Python radians() 函数
66.Python degrees() 函数
67.Python tan() 函数
68.Python sin() 函数
69.Python hypot() 函数
70.Python cos() 函数
71.Python atan2() 函数
72.Python atan() 函数
73.Python 元组
74.Python 列表(List)
75.Python 字符串
76.Python 字典(Dictionary)
77.Python 日期和时间
78.Python 函数
79.Python 模块
80.Python capitalize()方法
81.Python center()方法
82.Python count() 方法
83.Python expandtabs()方法
84.Python endswith()方法
85.Python encode()方法
86.Python decode()方法
87.Python find()方法
88.Python index()方法
89.Python 异常处理
90.Python isspace()方法
91.Python isnumeric()方法
92.Python islower()方法
93.Python isdigit()方法
94.Python isalpha()方法
95.Python isalnum()方法
96.Python isupper()方法
97.Python istitle()方法
98.Python min()方法
99.Python max()方法
100.Python maketrans()方法