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
相关产品推荐
相关产品推荐

