我正在尝试使用系统调用编写单线程非阻塞程序select
。但是,它不能很好地使用文件处理程序。
这是代码:
import sys
import select
while True:
file_handler = open('filename.txt')
inputs = [file_handler, sys.stdin]
try:
_input, _output, _error = select.select(inputs, [], [])
except select.error, e:
print e
for i in _input:
txt = i.readline()
if len(txt) > 0:
print 'txt:', txt
当有来自标准输入的新输入时,它会到达打印消息,但不会在向文件写入新行时。sockets
使用而不是文件时它工作得很好。