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等函数读取部分文件后,当前指针在哪里呢?
我们下一节再来讲述。