一、file.readlines方法介绍
在Python中,我们经常需要读取文件的内容。file.readlines()方法可以读取整个文件内容,并返回一个列表,列表的每个元素为文件的一行文本。
f = open("example.txt", "r")
lines = f.readlines()
f.close()
print(lines)
上述代码中,我们打开了example.txt文件,使用readlines()方法读取整个文件内容,并将每行文本存储为列表lines,最后打印输出。需要注意的是,使用完readlines()方法后,需要关闭文件。
二、readlines方法的参数
file.readlines()方法可以接受一个可选的参数sizehint,用于指定读取的最大字节数。如果sizehint为0或负数,则读取整个文件。如果文件中的内容不足sizehint字节,则只返回实际读取的字节数。
f = open("example.txt", "r")
lines = f.readlines(15)
f.close()
print(lines)
上述代码中,我们指定readlines()方法最多读取15个字节。如果文件中不足15个字节,则仅返回实际读取的字节数。需要注意的是,读取的是字节数而非行数。
三、处理读取后的文件内容
使用file.readlines()方法读取文件后,可以对返回的列表做各种操作。例如,可以使用列表切片操作获取文件的前N行:
f = open("example.txt", "r")
lines = f.readlines()
f.close()
print(lines[:5]) # 获取前5行
上述代码中,我们使用切片操作获取列表(lines)的前5个元素,即文件的前5行文本。
另外,经常需要去除换行符。读取文件时,每一行的文本后面都会有一个换行符"\n"。可以使用字符串的strip()方法去除:
f = open("example.txt", "r")
lines = f.readlines()
f.close()
clean_lines = [l.strip() for l in lines]
print(clean_lines)
上述代码中,我们先读取文件内容并存储为列表(lines),然后使用列表推导式对每一行的文本去除首尾的空白符并存储为新列表(clean_lines)。打印输出新列表即可。
四、读取大文件
当需要处理大文件时,file.readlines()方法可能会导致内存溢出。一种解决方法是逐行读取文件,并立即处理:
with open("example.txt", "r") as f:
for line in f:
print(line.strip())
上述代码中,我们使用with语句打开文件,并使用for循环逐行读取文件。每一行的文本使用print()函数打印输出,并去除首尾的空白符。with语句可以自动关闭文件,无需手动调用close()方法。
五、总结
file.readlines()方法是Python中读取文件内容的常用方法之一。除了基本的读取外,还可以使用参数sizehint和对返回的列表做各种操作。然而,当需要处理大文件时,应当避免一次性读取整个文件,而应当逐行读取并立即处理。