使用SELECT读取文件-等待I / O完成

时间:2020-07-29 14:28:57

标签: python file-io

在我的Linux(python 3)系统中,我试图读取在同一网络中存在的另一个Linux(python 2.7)系统中更新的文件。为此,我使用了BufferdIOstreamselect – Wait for I/O Efficiently包。

        file = open(filename, "r", buffering = 1)
        poll_stdout = select.poll()
        READ_ONLY = select.POLLIN | select.POLLPRI | select.POLLHUP | select.POLLERR
        poll_stdout.register(file, READ_ONLY)

        while <some_condition>:
            poll_result = poll_stdout.poll(0)
            if poll_result:
                line = file.readline()
                print("Data = ", line)
        poll_stdout.unregister(file)
        file.close()

只要我正在使用file.readline(),它就可以正常工作。但是,如果我使用file.read()或file.readlines(),即使文件中存在数据,它也总是返回一个空字符串。我尝试将“缓冲”的大小增加到1000,但这没有帮助。

这里有什么问题的线索吗?

谢谢。

0 个答案:

没有答案
相关问题