在Python中高效读取文件的特定行,可通过四种核心方法实现:readlines()
索引定位、seek()
指针跳转、itertools.islice()
迭代切片以及NumPy
结构化读取。 其中,readlines()
适合小文件快速定位,seek()
擅长大文件精准跳转,islice()
优化内存占用,而NumPy
则针对带分隔符的数据文件。
-
readlines()
与下标结合
适用于小文件,一次性读取所有行到列表,通过索引直接访问目标行(如lines[2]
获取第3行)。注意内存消耗问题,避免处理超大文件时崩溃。 -
seek()
和readline()
指针控制
通过seek()
移动文件指针到指定字节位置(如第51行开头),配合readline()
读取。适合已知行偏移的大文件,但需手动计算行起始位置。 -
itertools.islice()
迭代切片
使用生成器特性逐行迭代,仅加载目标行范围(如islice(f, 2, 3)
读取第3行)。内存效率高,推荐处理大文件或需批量读取连续行时使用。 -
NumPy
结构化读取
通过np.loadtxt()
指定skiprows
和max_rows
参数跳过无关行(如读取CSV第3行)。适合带分隔符的数值文件,但依赖第三方库。
总结:根据文件大小和格式选择合适方法——小文件用readlines()
,大文件优先islice()
或seek()
,结构化数据选NumPy
。注意异常处理与资源释放,确保代码健壮性。