廖雪峰python爬虫教程廖雪峰python实战课后题穆雪峰python教程
下载地址 https://share.weiyun.com/RS9A6Xk6
资料目录 廖雪峰python视频教程1 爬虫的基本框架及知识(day1-day15) 廖雪峰python视频教程2 scapy框架及爬虫进阶(day16-day20) 廖雪峰python视频教程3 爬虫高级知识及就业培训(day21-day28) 廖雪峰python教程官网doc 廖雪峰 2018年官方最新Python3教程(一)pdf 廖雪峰 2018官方Python3教程(二)pdf 廖雪峰2018官方Python3教程(三)pdf 廖雪峰python学习笔记(入门+进阶).doc Python3高级教程(开课吧)pdf Python3零基础教程(开课吧)pdf 利用Python进行数据分析(中文版)pdf 廖雪峰商业爬虫案例 廖雪峰商业爬虫课件 廖雪峰商业爬虫练习答案 爬虫第一节-爬虫第十四节 Python爬虫预习书籍 python环境和pychram 举例 文件迭代器 有一个文件,名称是208.txt,其内容如下: Learn python with qiwsir. There is free python course. The website is: http://qiwsir.github.io Its language is Chinese. 用迭代器来操作这个文件: >>> f = open("208.txt") >>> f.readline() #读第一行 'Learn python with qiwsir.\n' >>> f.readline() #读第二行 'There is free python course.\n' >>> f.readline() #读第三行 'The website is:\n' >>> f.readline() #读第四行 'http://qiwsir.github.io\n' >>> f.readline() #读第五行,也就是最后一行 'Its language is Chinese.\n' >>> f.readline() #无内容了,但是不报错,返回空 '' 以上演示的是用readline()一行一行地读。当然,在实际操作中,我们是绝对不能这样做的,一定要让它自动进行,比较常用的方法是: >>> for line in f: ... print line, 这段代码之所没有打印出东西来,是因为经过前面的迭代,指针已经移到了最后。这就是迭代的一个特点,要小心指针的位置。 >>> f = open("208.txt") #从头再来 >>> for line in f: ... print line, ... Learn python with qiwsir. There is free python course. The website is: http://qiwsir.github.io Its language is Chinese. 这种方法是读取文件常用的。另外一个readlines()也可以。但是,需要小心操作。 上面过程用next()也能够实现。 >>> f = open("208.txt") >>> f.next() 'Learn python with qiwsir.\n' >>> f.next() 'There is free python course.\n' >>> f.next() 'The website is:\n' >>> f.next() 'http://qiwsir.github.io\n' >>> f.next() 'Its language is Chinese.\n' >>> f.next() Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration 如果用next(),就可以直接读取每行的内容,这说明文件是天然的可迭代对象,不需要用iter()转换。 再有,我们用for来实现迭代,在本质上就是自动调用next(),只不过这个工作已经让for偷偷地替我们干了,到这里应该给for取另外一个名字:雷锋。 列表解析也能够作为迭代工具,在研究列表的时候,想必已经清楚了。那么对文件,是否可以用?试一试: >>> [ line for line in open('208.txt') ] ['Learn python with qiwsir.\n', 'There is free python course.\n', 'The website is:\n' 至此,看官难道还不为列表解析的强大魅力所折服吗?真的很强大。 其实,迭代器远远不止上述这么简单,下面我们随便列举一些,在Python中还可以这样得到迭代对象中的元素。 >>> list(open('208.txt')) ['Learn python with qiwsir.\n', 'There is free python course.\n', 'The website is:\n' >>> tuple(open('208.txt')) ('Learn python with qiwsir.\n', 'There is free python course.\n', 'The website is:\n' >>> "$$$".join(open('208.txt')) 'Learn python with qiwsir.\n$$$There is free python course.\n$$$The website is:\n$$$h >>> a,b,c,d,e = open("208.txt") >>> a 'Learn python with qiwsir.\n' >>> b 'There is free python course.\n' >>> c 'The website is:\n' >>> d 'http://qiwsir.github.io\n' >>> e 'Its language is Chinese.\n' 上述方式在编程实践中不一定用得上,只是秀一下可以这么做,但不是非要这么做。 字典是否可迭代?可以。读者不妨自己仿照前面的方法摸索一下(其实前面已经用for迭代过了,这次请用iter()...next()手动一步一步迭代)。
|