代码之家  ›  专栏  ›  技术社区  ›  ATOzTOA

为什么从长寿命FIFO读取时只返回readline(),而不返回readlines()或readlines()?

  •  0
  • ATOzTOA  · 技术社区  · 8 年前

    好的,我在Ubuntu中有一个FIFO文件。

    with open(fifo_path) as f:
        while True:
            d = f.read()
            print(repr(d)) ## this is never called
    

    这不起作用,我从来没有得到任何数据,它只是无限期地阻塞,即使有数据。

    with open(fifo_path) as f:
        while True:
            d = f.readlines()
            print(repr(d)) ## this is also never called
    

    这也不行。

    with open(fifo_path) as f:
        while True:
            d = f.readline()
            print(repr(d)) ## only this is invoked
    

    只有这样才有效。我得到了数据,它一直在读每一行。

    1 回复  |  直到 8 年前
        1
  •  3
  •   Charles Duffy    8 年前

    read() readlines() 全部内容

    readline() 只有一行