迭代器实现文件的读取

#500G, 特殊 一行
def myreadlines(f, newline):#文件,行分隔符
  buf = ""
  while True:
    while newline in buf:
      pos = buf.index(newline)
      yield buf[:pos]
      buf = buf[pos + len(newline):]#每一次在读的时候都在跟新buf
    chunk = f.read(4096)

    if not chunk:
      #说明已经读到了文件结尾
      yield buf
      break
    buf += chunk

with open("input.txt") as f:
    for line in myreadlines(f, "{|}"):
        print (line)

猜你喜欢

转载自blog.csdn.net/qq_35810838/article/details/86654334