使用 read() 函数读取文件时,如果文件过大,则一次读取全部内容到内存,容易造成内存不足,而相比每次限制读取字符(或字节)的个数,更推荐大家使用逐行读取文件的方式。一般情况下,逐行读取只适用于以文本格式打开的文件,道理很简单,只有文本文件才有行的概念,二进制文件没有所谓行的概念。

文件对象提供了 readline() 和 readlines() 两个函数来逐行读取文件,其中 readline() 函数用于读取一行内容,而 readlines() 函数用于读取文件内的所有行。

readline()函数

readline() 函数用于读取文件中的一行,包含最后的换行符" ”。此函数的基本语法格式为:file.readline([size])

其中,file 为打开的文件对象;size 为可选参数,用于指定读取每一行时,一次最多读取的字符数。和 read() 函数一样,此函数成功读取文件数据的前提是,使用 open() 函数指定打开文件的模式必须为 r(只读模式)或 r+

(读写模式)。

下面程序示范了使用 readline() 方法来读取文件内容:#a.txt中有两行内容,分别是:

#PHP中文网
#https://www.php.cn
f = open("a.txt", 'r', True)
while True:
# 每次读取一行
line = f.readline()
# 如果没有读到数据,跳出循环
if not line: break
# 输出line
print(line)
f.close()

输出结果是PHP中文网

https://www.php.cn