python文件操作之文件读取方式

来源:互联网 发布:程序员能干到多少岁 编辑:程序博客网 时间:2024/06/05 09:26

1 

前一章节,我们大概了解了文件的打开方式以及一些读写操作,这一章节我们来具体学习一下《python的文件读取方式》

0x00 回顾

read([size]):读取文件(读取size个字节,默认读取全部)readline([size]):读取一行readlines([size]):读取文件至内存,返回每一行组成的列表

0x01 read(size)方法

#python.txt的内容为:#i_love_python1#i_love_python2#i_love_python3f = open("python.txt")#本文以size为例,无size则默认读取全部,size>len(python.txt)也读取全部,这里主要分析size小于的情况#第一次读取f.read(1) //程序打印出i#第二次读取f.read(1) //程序则打印出_#第三次读取f.read(100) //程序打印出love_python1\ni_love......#为什么呢?因为第二次read时,文件的指针指向已经发生了变化

0x02 readline(size)方法

#python.txt的内容为:#i_love_python1#i_love_python2#i_love_python3f = open("python.txt")#第一次读取f.readline(1) //程序打印出i#第二次读取f.readline(1) //程序则打印出_#第三次读取f.readline(100) //程序打印出love_python1\n,指针指向下一行开头#第四次读取f.readline()  //程序打印出i_love_python2\n,指针指向下一行开头#注意指针指向的变化

0x03 realines()方法

#python.txt的内容为:#i_love_python1#i_love_python2#i_love_python3f = open("python.txt")list_rls = f.readlines(1) //此时的list_rls的值为['i_love_python1\n','i_love_python2\n','i_love_python3\n']为什么readlines的size(1)不是读取一个字符呢?这时我们要看一下readlines的定义>>> help(f.readlines)Help on built-in function readlines:readlines(...)    readlines([size]) -> list of strings, each a line from the file.    Call readline() repeatedly and return a list of the lines so read.    The optional size argument, if given, is an approximate bound on the    total number of bytes in the lines returned.#什么是an approximate bound on the total number of bytes?#其实这里的size并非普通的size,而是io模块的io.DEFAULT_BUFFER_SIZE,这个size的大小为8192这就意味这当我们的文件远大于8192个字节是,我们使用readlines(1)来读取是,len(list_rls)是一个近似8192的大小

0x04 iter 使用迭代器处理文件

f = open('python.txt')iter_i = iter(f)lines = 0 #记录行数for line in iter_i:    lines += 1    print line
关于迭代器的相关知识,可自行上网搜索学习。

0 0
原创粉丝点击