问题
当文件很大,而内存比较小的时候,可以考虑一行一行读取文件,或者分块读取文件。需要一行一行处理大文件数据时也需要。
解决方案
采用yield+next方式读取文件。
具体代码
def get_line(file):
with open(file, "r") as fobj:
for line_str in fobj:
yield line_str
if __name__ == '__main__':
file_name = r'test.txt'
read_fff = get_line(file_name )
while True:
try:
ji = next(read_fff)
print(ji)
except StopIteration:
print("Iteration is stopped.")
break