在我的Linux(python 3)系统中,我试图读取在同一网络中存在的另一个Linux(python 2.7)系统中更新的文件。为此,我使用了BufferdIOstream和select – 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,但这没有帮助。
这里有什么问题的线索吗?
谢谢。