📅  最后修改于: 2023-12-03 15:23:15.776000             🧑  作者: Mango
在 Python 编程中,经常需要从文件中读取数据。而文件的 readline() 方法是常用的读取文本文件的方法之一。但 readline() 方法只能读取文件的一行,如果要一次读取多行,可以使用 readlines() 方法。但有时候读取的行数可能过多,导致内存占用过高。这时候,我们就需要剥离文件中的部分行,保证内存的合理使用。
List 的切片操作非常灵活,我们可以利用这一点来剥离文件中的部分行。
with open('file.txt') as f:
# 注意,这里调用了 readlines() 方法,将整个文件读入内存
lines = f.readlines()
# 从第 10 行开始,取 20 行数据
selected_lines = lines[9:29]
# 处理选中的行
for line in selected_lines:
# do something
pass
这种方法适用于文件行数不是非常多的情况,能够保证高效使用内存。
如果需要处理的行数非常多,我们可以使用简单的循环来读取文件,一次只读取一行,处理后立即释放内存。
with open('file.txt') as f:
# 计数器,记录当前已经读取了多少行
count = 0
# 逐行读取文件
for line in f:
count += 1
# 跳过前 9 行
if count < 10:
continue
# 处理选中的行,跳出循环
if count > 29:
break
# do something
pass
这种方法虽然代码比较繁琐,但可以处理非常大的文件,保证内存的高效使用。
无论采用哪种方法,都需要注意以下事项: