You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何读取文本文件指定行?如何按需逐行打印指定行?

Python读取文本文件:逐行打印与指定行读取指南

嘿,我来帮你搞定这两个Python文件读取的问题!咱们分场景一步步说,保证实用又好懂。

一、逐行打印文本内容(避免一次性输出)

Python处理文件最推荐的方式是用with语句——它会自动帮你管理文件句柄,不用手动写close(),既安全又省心。直接遍历文件对象就行,因为文件本身就是可迭代的,每次迭代会读取一行,内存占用极低,哪怕是超大文件也不怕。

代码示例:

with open('your_file.text', 'r', encoding='utf-8') as file:
    for line in file:
        # 用strip()去掉每行末尾的换行符,避免打印时出现多余空行
        print(line.strip())

二、读取/打印指定行(第一行、第二行等)

这里分两种场景,根据文件大小选合适的方法:

场景1:小文件(内存能轻松装下)

如果文件不大,直接把所有行读到列表里,然后通过索引访问就行。注意Python列表是0索引,所以人类习惯的“第一行”对应列表的lines[0],“第二行”对应lines[1],以此类推。

代码示例:

with open('your_file.text', 'r', encoding='utf-8') as file:
    # readlines()会把所有行存入列表
    lines = file.readlines()

# 打印第一行
print(lines[0].strip())
# 打印第三行
print(lines[2].strip())
# 打印最后一行
print(lines[-1].strip())

场景2:大文件(不能一次性加载到内存)

如果文件特别大(比如几个G),逐行遍历的时候记录行数,匹配到目标行就处理,找到后还可以直接break停止遍历,节省时间和内存。

比如要打印第5行:

# 按人类习惯从1开始计数目标行
target_line = 5
current_line = 1

with open('your_file.text', 'r', encoding='utf-8') as file:
    for line in file:
        if current_line == target_line:
            print(line.strip())
            # 找到目标行就停止遍历,不用继续读后面的内容
            break
        current_line += 1

如果要打印多个指定行(比如第2、4、6行),可以把目标行存到集合里:

target_lines = {2, 4, 6}
current_line = 1

with open('your_file.text', 'r', encoding='utf-8') as file:
    for line in file:
        if current_line in target_lines:
            print(f"第{current_line}行:{line.strip()}")
            # 可以移除已找到的行,避免重复判断
            target_lines.remove(current_line)
            # 所有目标行都找到后就停止
            if not target_lines:
                break
        current_line += 1

偷懒小技巧:用linecache模块快速获取指定行

Python内置的linecache模块专门用来快速读取文件的指定行,适合小文件或者需要多次读取不同行的场景——它会自动缓存文件内容,重复读取效率更高。而且它的计数是从1开始的,更符合人类习惯!

代码示例:

import linecache

# 获取第3行
line = linecache.getline('your_file.text', 3)
print(line.strip())

内容的提问来源于stack exchange,提问作者PETEROLO 291

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:12:58