python使用生成器的原理遍历大文件
# 需求遍历大小为500G的文件
# 文件特殊之处只有一行,一行就有500G,每条数据使用分隔符“{|}”隔开
def readline(f, separator): """ 读取数据的方法 :param separator: 分隔符 :return: None """ bar = "" while True: while separator in bar: pos_index = bar.index(separator) result = bar[:pos_index] yield result bar = bar[pos_index+3:] # 假设一次读取4096个 chunk = f.read(4096) if chunk: bar += chunk else: yield bar break if __name__ == "__main__": with open("input.txt") as f: for line in readline(f, "{|}"): print(line)
这里我准备了一个文件input.text,文件内容如下

输出如下:


浙公网安备 33010602011771号