【Python】文件读取: 逐行读取

发布于:2025-07-07 ⋅ 阅读:(20) ⋅ 点赞:(0)

逐行读取

方法1:使用 for 循环逐行读取(推荐)

with open() 打开文件后,可以直接使用 for 循环逐行读取文件内容。

with open('example.txt', 'r', encoding='utf-8') as file:
    for line in file:
        print(line.strip())  # 使用 strip() 去除每行末尾的换行符

file 是一个文件对象,它是一个可迭代对象,每次迭代返回文件的一行。
line.strip() 用于去除每行末尾的换行符 \n,也可以去除行首和行尾的空白字符。

  • 使用 strip() 方法可以删除字符串两端的空白字符(包括空格和换行符)。
  • 使用 rstrip() 方法可以删除字符串末尾的空白字符,但保留换行符。
  • 使用 lstrip() 方法可以删除字符串开头的空白字符。

方法2:使用 read() 方法并按行分割

read() 方法会读取整个文件内容为一个字符串,然后可以使用 splitlines() 方法将其按行分割。

with open('example.txt', 'r', encoding='utf-8') as file:
    content = file.read()  # 读取整个文件内容
    lines = content.splitlines()  # 按行分割
    for line in lines:
        print(line)

方法3:使用 readlines() 方法

readlines() 方法会读取整个文件内容,并将其按行分割为一个列表。每行是一个字符串,包括换行符 \n。

优点:

  • 文件对象的生命周期:with 语句会自动管理文件的打开和关闭。文件对象在 with 代码块之外是不可用的,因为文件已经被关闭。
  • 数据持久化:通过将文件内容存储到列表中,我们可以在 with 代码块之外继续使用这些数据,而不需要重新打开文件。
# 定义一个空列表来存储文件的每一行
lines = []

# 使用 with 打开文件
with open('example.txt', 'r', encoding='utf-8') as file:
    # 使用 for 循环逐行读取文件内容,并将每一行添加到列表中
    for line in file:
        # 使用 strip() 去除每行末尾的空格和换行符
        clean_line = line.strip() # 
        lines.append(clean_line)

# 在 with 代码块之外使用列表
print("文件内容如下:")
for line in lines: # 列表 lines 已经包含了文件的所有行,因此可以在代码块之外自由使用这个列表
    print(line)

文件内容如下:
第一行内容
第二行内容
第三行内容

这种方法会将整个文件内容加载到内存中,因此不适用于非常大的文件。
如果文件较大,建议使用第一种方法(for 循环逐行读取)。、、

方法4:使用 readline() 方法

readline() 方法每次调用读取文件的一行,包括换行符 \n。可以通过循环调用 readline() 来逐行读取文件。

with open('example.txt', 'r', encoding='utf-8') as file:
    while True:
        line = file.readline()
        if not line:  # 如果读取到文件末尾,line 为空字符串
            break
        print(line.strip())  # 去除每行末尾的换行符

方法5:使用列表推导式

如果需要对文件的每一行进行某种操作,可以使用列表推导式。

with open('example.txt', 'r', encoding='utf-8') as file:
    lines = [line.strip() for line in file]  # 使用列表推导式逐行读取并处理
    for line in lines:
        print(line)

这种方法同样会将整个文件内容加载到内存中,因此适用于较小的文件。


网站公告

今日签到

点亮在社区的每一天
去签到