这4个Python实战项目,让你瞬间读懂Python!
前语
Python当下真的很火。Python实战项目,也一向尤为重视,接下来,和咱们介绍下十个Python练手的实战项目
python项目操练一:即时符号
这是《python基础教程》后边的实践,照着写写,一方面是来了解python的代码办法,另一方面是操练运用python中的根本的以及非根本的语法,做到游刃有余。
这个项目一开端比较简略,不过重构之后就有些杂乱了,但是更灵敏了。
依照书上所说,重构之后的程序,分为四个模块:处理程序模块,过滤器模块,规矩(其实应该是处理规矩),语法剖析器。
先来说处理程序模块,这个模块的效果有两个,一个是供给那些固定的html符号的输出(每一个符号都有start和end),另一个是对这个符号输出的开端和完毕供给了一个友爱的拜访接口。来看下程序handlers.py:
这个程序堪称是整个“项目”的柱石地点:供给了标签的输出,以及字符串的替换。了解起来也比较简略。
再来看第二个模块“过滤器”,这个模块更为简略,其实就是一个正则表达式的字符串。相关代码如下:
这就是三个过滤器了,别离是:着重牌过滤器(用×号标出的),url牌过滤器,email牌过滤器。了解正则表达式的同学了解起来是没有压力的。
再来看第三个模块“规矩”,这个模块,抛开那祖父类不说,其他类应该有的两个办法是condition和action,前者是用来判别读进来的字符串是不是契合自家规矩,后者是用来履行操作的,所谓的履行操作就是指调用“处理程序模块”,输出前标签、内容、后标签。 来看下这个模块的代码,其实这个里边几个类的联系,画到类图里边看会比较明晰。 rules.py:
弥补utils.py:
假如你在学习Python的进程中遇见了许多疑问和难题,能够加-q-u-n 227 -435-450里边有软件视频材料免费
总结一下:
最终盛大的来看下“语法剖析器模块”,这个模块的效果其实就是和谐读入的文本和其他模块的联系。在往要点说就是,供给了两个寄存“规矩”和“过滤器”的列表,这么做的优点就是使得整个程序的灵敏性得到了极大的进步,使得规矩和过滤器变成的热插拔的办法,当然这个也归功于前面在写规矩和过滤器时每一种类型的规矩(过滤器)都独自的写成了一个类,而不是用if..else来区别。 看代码:
这个模块里边的处理思路是,遍历客户端(也就是程序履行的进口)给插进去的一切的规矩和过滤器,来处理读进来的文本。
有一个细节的当地也要说一下,其实是和前面写的照应一下,就是在遍历规矩的时分经过调用condition这个东西来判别是否契合当时规矩。
我觉得这个程序很像是命令行方式,有空能够温习一下该方式,以坚持回忆网节点的结实性。
最终说一下我认为的这个程序的用途:
1、用来做代码高亮剖析,假如改写成js版的话,能够做一个在线代码编辑器。
2、能够用来学习,供我写博文用。
还有其他的思路,能够留下您的真知灼见。
弥补一个类图,很粗陋,但是应该能阐明之间的联系。别的我仍是主张假如看代码捋不清联系最好自己画图,自己画图才干了解整个结构。
python项目操练二:画幅好画
这是《python基础教程》中的第二个项目,关于python操作PDF
涉及到的知识点
1、urllib的运用
2、reportlab库的运用
这个比方着实很简略,不过我发现在python里边能够直接在数组[]里边写for循环,真是越用越便利。
下面是代码:
python项目操练三:全能的XML
这个项意图称号与其叫做全能的XML不如叫做主动构建网站,依据一份XML文件,生成对应目录结构的网站,不过只需html仍是太过于简略了,假如要是能够连带生成css那就比较强壮了。这个有待后续研制,先来研讨下怎样html网站结构。 既然是经过XML结构生成网站,那一切的工作都应该由这个XML文件来。先来看下这个XML文件,website.xml:
有了这个文件,下面应该来看怎样经过这个文件生成网站。
首要咱们要解析这个xml文件,python解析xml和在java中一样,有两种办法,SAX和DOM,两种处理办法不同点在于速度和规模,前者考究的是功率,每次只处理文档的一小部分,快速而能有用的运用内存,后者是相反的处理办法,先把一切的文档载入到内存,然后再进行处理,速度比较慢,也比较耗费内存,仅有的优点就是能够操作整个文档。
在python中运用sax办法处理xml要先引进xml.sax中的parse函数,还有xml.sax.handler中的ContentHandler,后边的这个类是要和parse函数来合作运用的。运用办法如下: parse('xxx.xml',xxxHandler),这儿边的xxxHandler要承继上面的ContentHandler,不过只需承继就行,不需要有所作为。 然后这个parse函数在处理xml文件的时分,会调用xxxHandler中的startElement函数和endElement函数来一个xml中的标签的开端和完毕,中心的进程运用一个名为characters的函数来处理标签内部的一切字符串。
有了上面的这些知道,咱们现已知道怎样处理xml文件了,然后再来看那个罪恶的源头website.xml文件,剖析其结构,只需两个节点:page和directory,很明显page表明一个页面,directory表明一个目录。
所以处理这个xml文件的思路就变的明晰了。读取xml文件的每一个节点,然后判别是page仍是directory假如是page则创立html页面,然后把节点中的内容写到文件里。假如遇到directory就创立一个文件夹,然后再处理其内部的page节点(假如存在的话)。
下面来看这部分代码,书中的完成比较杂乱,比较灵敏。先来看,然后在剖析。
看起来这个程序上面剖析的杂乱了一些,不过巨人毛毛说过,任何杂乱的程序都是纸老虎。那咱们再来剖析一下这个程序。
首要看到这个程序是有两个类,其实完全能够当作一个类,由于有了承继。
然后再来看它多了些什么,除了咱们剖析出来的startElement和endElement以及characters,多出来了startPage,endPage;startDirectory,endDirectory;defaultStart,defaultEnd;ensureDirectory;writeHeader,writeFooter;和dispatch,这些个函数。除了dispatch,前面的函数都很好了解,每一对函数都是单纯的处理对应的html标签以及xml节点。而dispatch比较杂乱,杂乱之处在于他是用来动态拼合函数而且进行履行的。
dispatch的处理思路是,首要依据传递的参数(就是操作称号以及节点称号)判别是否存在对应的函数如startPage,假如不存在则履行default+操作称号:如defaultStart。
一个函数一个函数搞清楚之后,就知道整个处理流程是什么样了。首要创立一个public_html的文件,寄存整个网站,然后读xml的节点,经过startElement和endElement调用dispatch进行处理。然后就是dispatch怎样调用详细的处理函数了。 到此为止,这个项目算是剖析完了。
首要把握的内容一个是python中运用SAX处理XML,另一个就是python中的函数的运用,比方getattr,传参数时的星号……
python项目操练四:新闻聚合
书中的第四个操练,新闻聚合。现在很少见的一类使用,至少我从来没有用过,又叫做Usenet。这个程序的首要功能是用来从指定的来历(这儿是Usenet新闻组)搜集信息,然后讲这些信息保存到指定的意图文件中(这儿运用了两种方式:纯文本和html文件)。这个程序的用途有些类似于现在的博客订阅东西或许叫RSS订阅器。
先上代码,然后再来逐个剖析:
这个程序,首要从全体上进行剖析,要点部分在于NewsAgent,它的效果是存储新闻来历,存储方针地址,然后在别离调用来历服务器(NNTPSource以及SimpleWebSource)以及写新闻的类(PlainDestination和HTMLDestination)。所以从这儿也看的出,NNTPSource是专门用来获取新闻服务器上的信息的,SimpleWebSource是获取一个url上的数据的。而PlainDestination和HTMLDestination的效果很明显,前者是用来输出获取到的内容到终端的,后者是写数据到html文件中的。
有了这些剖析,然后在来看主程序中的内容,主程序就是来给NewsAgent增加信息源和输出意图地址的。
这确实是个简略的程序,不过这个程序但是用到了分层了
© 著作权归作者一切