这里的程序并不复杂,下面主要对随机数据的生成部分进行分析
1 | def randNumGen(self) : |
这里由于数字是不重复的,所以可以先定义好一个 0-9 的数字串,然后用 choice 函数随机选出一个,之后删除这个数字,再次 choice,直到选出 4 位数字为止。
下面是完整的代码:
1 | #!/usr/bin/env python |
这里的程序并不复杂,下面主要对随机数据的生成部分进行分析
1 | def randNumGen(self) : |
这里由于数字是不重复的,所以可以先定义好一个 0-9 的数字串,然后用 choice 函数随机选出一个,之后删除这个数字,再次 choice,直到选出 4 位数字为止。
下面是完整的代码:
1 | #!/usr/bin/env python |
所谓的网络爬虫就是利用程序抓取想要的网页或者数据。
下面对程序中所使用模块进行简单分析:
网络方面涉及 Python 的三个模块 htmllib,urllib,urlparse。
1)htmllib这个模块定义了一个可以担当在超文本标记语言(HTML)中解析文本格式文件的基类。该类不直接与
I/O
有关--它必须被提供字符串格式的输入,并且调用一个"格式设置"对象的方法来产生输出。该
HTMLParser
类被设计用来作为其他类增加功能性的基类,并且允许它的多数方法被扩展或者重载。该
HTMLParser 实现支持 HTML 2.0(描述在 RFC1866 中)语言。
2)urllib模块提供的上层接口,使我们可以像读取本地文件一样读取
www 和 ftp 上的数据。通过简单的函数调用,URL
所定位的资源就可以被你作为输入使用到你的程序中。如果再配以
re(正则表达式)模块,那么你就能够下载 Web
页面、提取信息、自动创建你所寻找的东西。urlretrieve
方法直接将远程数据下载到本地。参数 filename
指定了保存到本地的路径(如果未指定该参数,urllib
会生成一个临时文件来保存数据);
3)urlparse模块使我们能够轻松地把 URL
分解成元件(urlparse),之后,还能将这些元件重新组装成一个
URL(urljoin)。当我们处理 HTML 文档的时候,这项功能是非常方便的。
系统方面涉及 Python 的模块比较简单,主要是常用的sys和os两个模块。主要用于文件夹的创建,文件路径的定位和判断等常用功能。这里不再介绍深入介绍。
输入输出方面使用了cStringIO模块。StringIO 的行为与 file 对象非常像,但它不是针对磁盘上文件,而是一个内存中的"文件",我们可以将操作磁盘文件那样来操作 StringIO。
formatter模块主要用于格式化输出。这里的格式化输出不仅仅是"格式化"输出而已。它可以将 HTML 解析器的标签和数据流转换为适合输出设备的事件流( event stream ),从 而 写将事件流相应的输出到设备上。
这个程序所使用的 Python 解释器版本为 2.6.5
下面是代码部分 NetCrawl.py
1 | #!/usr/bin/env python |
这里的程序只是简单的抓取网页,如果要抓取指定网页可以加上也正则表达式(模块)来进行处理
Python 里面的 FTP 连接,主要依赖 ftplib 这个模块,具体请看帮助文档。
1 | #!/usr/bin/env python |
这里主要使用了一个 random 随机模块中的 randint 和 choice。Python 的随机模块还是很强大的。
1 | #!/usr/bin/env python |
这里自行定义了一个 MyTime 的类,继承于系统类 object。在 Python 里面默认的情况的下都要继承于这个类。类里面对init,str,add,iadd函数进行了重载。其实严格上讲不能叫重载,因为 Python 不支持重载,确切说应该叫覆盖。里面我还企图对init进行再次重载,显然不允许的,放在那边做个比较。
1 | #!/usr/bin/env python |
这里代码很简单,实现了一个随机序列迭代器
1 | #!/usr/bin/env python |
这里定义了一个 TCPServer 和 TCPClient。这里创建一个 TCP 服务程序,服务器会把客户发送过来的字符串加上一个时间戳,然后显示,并返回客户端。主要后面无论如何都要记得 close()关上连接,虽然基本上不会执行那一句。
TCPServer.py
1 | #!/usr/bin/env python |
TCPClient.py
1 | #!/usr/bin/env python |
E-Mail 的收发涉及到 STMP 和 POP3 两个协议。下面的代码演示了 STMP 和 POP3 连接的建立
1 | #!/usr/bin/env python |
NNTP 连接主要是用在新闻组的消息上面,下面的代码演示了 NNTP 连接的建立,不过显然下面的那个新闻组客户端程序是不能用的。
1 | #!/usr/bin/env python |
首先用 Qt Designer 创建窗体后,保存为 form.ui
然后再 cmd 中输入
1 | pyuic4 -o ui_form.py form.ui |
之后对应目录下生成 ui_form.py 的文件
附上 pyuic4 的帮助
1 | NAME |