您的位置:

Python readlines:从文件中读取多行数据

一、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() 方法可以从文件中读取多个行,并将它们存储在列表中。然后可以使用多种选项,例如移动指针,限制读取的字节数或处理列表中的行。