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

无需重新打开文件重置光标,如何获取TXT文件行数?

无需重新打开文件获取行数的优化方法

你当前的方案确实存在冗余,重新打开文件会额外占用系统资源,还可能因为文件在两次打开间被修改导致数据不一致。以下是两种更优的实现方式:

方法一:小文件场景 - 用seek()重置光标

如果文件体积不大,可以先读取行数,再通过seek(0)将文件光标重置到开头,无需重新打开文件:

file = open("accounts.txt", "r")
num = len(file.readlines())
file.seek(0)  # 将文件指针移回文件起始位置
# 这里可以继续对file进行后续操作
file.close()  # 记得手动关闭文件

更推荐使用with语句(自动管理文件生命周期,避免忘记关闭):

with open("accounts.txt", "r") as file:
    num = len(file.readlines())
    file.seek(0)
    # 后续文件操作写在这里

方法二:大文件场景 - 逐行计数(内存友好)

如果文件很大,readlines()会把所有内容加载到内存中,可能导致内存溢出。这种情况下,逐行计数更高效,之后同样用seek(0)重置光标:

with open("accounts.txt", "r") as file:
    num = 0
    for _ in file:
        num += 1
    file.seek(0)
    # 后续文件操作写在这里

内容的提问来源于stack exchange,提问作者Alasdair Pirie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:50:27