此处记录一下python的 read readline readlines
由于readlines()产生了一个可怕的bug,索性影响不大,此处记录一下:
建议python读取文件,存在文件过大,不能全部读入内存的状况:
使用如下代码:
with
open(file) as ff:
for line in ff:
XXXXXXXXXXXXXXX
一个大牛建议我使用yield,高手们,有你们真的好幸福哇。
对于python的read readline readlines三个函数,晚些整理出来,加以使用。
整理一下遇到的问题,顺便写一下今天的收获吧。。。
1.关于with open(file) as ff。。。。
with关键字还是很牛的,虽然我只会用with open
file,特点是省去了 open file时候的file.close()
2.说说read readline readlines:
with open(args[0],
argus[1])argu[1],可以是'r'、'w''、'a'、'rb'等等,当然也可以是空,当只有一个参数的时候,就是默认以读的方式读取文件(自己理解)...
ff.read()是将整个文件一次性读出,得到的是一个str。
ff.readline()是将文件按照行读取,得到的是str类型。
ff.readlines()是将文件同样按行读取文件,得到的是list类型。也可以readlines(1000),意为读1000行。
以上三种方法貌似都是一次将文件内容读到内存,遇到内存小的时候就悲剧了,比如今天,读了一个35M的文件,就发现自己悲剧了。。。
庆幸的是,及时发现了这个问题,问了大牛,告诉我最快的解决方案,如上。。。
虽然不知道为什么这个就不会存在内存不足的问题,但是读了yield文件,赶脚自己知道的果然还是很少...
下一篇文章记录下有yield引发的霸气关键字...