暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

python read, readline, readlines吐血整理(一)

EE漫谈 2019-06-18
883

 

python 在open文件后,通常使用read,readline,readlines等函数读取文件内容,它们的使用你掌握了吗?让我们一起来学习一下。

read():

无参数时,一次性读取整个文件的内容,将读取的字节(包括换行符等)保存到字符串变量中。

read(N)就是读取N个字节。

以ex3.txt为例,其内容如下所示:

 

 

由下图可知,read()读取了所有的内容:

 

由下图可知,read(100)读取了100个字节的内容:

 

readline():

无参数时,每次读取一整行(包括行结束符)的内容,将读取的字节(包括换行符等)保存到字符串变量中。

readline(N):当N<当前行的字节数时,读取N个字节,此时的效果同read(N)相同;当N>当前行的字节数时,只读取当前行的全部内容,不再往下读取。

示例如下所示:

 

由下图可知,读取20个字节时,read()与readline()读出的内容相同,读取80个字节时,read()与readline()读出的内容不同。

 

readlines():

无参数时,一次性读取整个文件,将文件内容分析成一个行的列表:就是每行的内容(包括换行符等)作为一个字符串,不同的行转换成的字符串集合成一个列表。

示例如下所示:

 

readlines(N) 的参数N官方定义如下

 

翻译过来就是:“hint确定要读的行数:如果行的总大小(以字节计算)超过了hint的值,就不再继续读取”。

有时候大家不是很清楚到底指的是什么意思。有些人说,为什么我用readlines(2)没有读取第二行的内容呢?

这里hint指的不是行数,而指的是需要读取的字节数的总大小。假设hint=N,readlines()函数会确定第N个字节的数据在哪一行,然后一直读取到该字节的数据所在的当前行为止。

举个例子:

第一行包括换行符的长度为34

 

那么我们用readlines(33)读取的还是第一行的内容

 

因为第34个字节是换行符,那么用readlines(34)或readlines(35)就能够读取第一行和第二行的内容了。

 

通过read等函数读取部分文件后,当前指针在哪里呢?

我们下一节再来讲述。

文章转载自EE漫谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论