一、readlines() 简介
Python 的内置方法 readlines()
可以从文件中一次读取多行内容,并返回一个列表,其中每个元素是文件中的一行文本。
file = open("example.txt", "r")
lines = file.readlines()
file.close()
print(lines)
上述例子中,我们打开 example.txt
文件,使用 readlines()
方法将文件中的内容全部读取到一个列表中,最后关闭文件。执行上述程序后,输出的内容为:
['这是第一行文字。\n', '这是第二行文字。\n', '这是第三行文字。\n']
可以看到,文件中的每一行都成为了列表中的一个元素。
二、readlines() 的选项
除了可以直接使用 readlines()
方法读取整个文件外,还可以使用一些选项来满足自己的需求。
1. 读取部分内容
我们可以通过给 readlines()
方法传递一个整数参数来指定需要读取的最大字节数。如果文件中的字符数少于指定的字节数,则会返回整个文件。
file = open("example.txt", "r")
lines = file.readlines(20)
file.close()
print(lines)
上述例子中,我们将参数设置为 20
,即最多只读取 20
个字符。执行上述程序后,输出的内容为:
['这是第一行文字。\n']
可以看到,仅返回了文件中的第一行文本(共 20 个字符)。
2. 移动光标
另一种有用的选择是移动文件指针,并从指定位置开始读取。可以使用 seek()
方法来实现这一点。
file = open("example.txt", "r")
file.seek(10)
lines = file.readlines()
file.close()
print(lines)
执行上述程序后,输出的内容为:
['第一行文字。\n', '这是第二行文字。\n', '这是第三行文字。\n']
我们通过使用 seek()
方法将指针移动到文件的第 11 个字符(第一行文字中的 “第” 字),然后使用 readlines()
方法读取接下来的所有内容。
三、处理读取多行内容
1. 处理空白行
当使用 readlines()
方法读取多行文本时,有时会遇到空白行,并且这些空白行可能会干扰你的代码。可以使用 strip()
方法来删除每一行的末尾换行符,进而删除空白行。
file = open("example.txt", "r")
lines = file.readlines()
file.close()
for line in lines:
if line.strip():
print(line)
执行上述程序后,可以看到输出结果已经没有空白行了。
2. 处理行末尾的空格和换行符
在打印列表中的行时,会发现每行末尾都有一个换行符。如果希望移除这些换行符,可以使用 rstrip()
方法。
file = open("example.txt", "r")
lines = file.readlines()
file.close()
for line in lines:
print(line.rstrip())
以上代码将在每个行末尾删除多余的空格和换行符。
3. 处理列表中的特殊字符
假设文件中包含特殊字符,例如制表符,我们可以使用字符串的 replace()
方法来替换这些字符。
file = open("example.txt", "r")
lines = file.readlines()
file.close()
for line in lines:
line = line.replace("\t", " ")
print(line)
上述代码将在每个制表符处用空格替换,从而正确显示列表中的所有行。
四、总结
在 Python 中,使用 readlines()
方法可以从文件中读取多个行,并将它们存储在列表中。然后可以使用多种选项,例如移动指针,限制读取的字节数或处理列表中的行。