无需重新打开文件重置光标,如何获取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
相关产品推荐
相关产品推荐

