我有一个从文件读取(使用file.read()
)的进程和一个正在写入同一文件(file.write()
)的进程。问题是它不起作用 - 我没有得到任何错误,但它们不能同时运行。我试过让读写操作无阻塞然后刷新流,如下:读取/写入同一文件的两个进程Python
fcntl.fcntl(file, fcntl.F_SETFL, os.O_NONBLOCK)
file.write(msg)
file.flush()
我完全误解了吗?应该如何完成从不同进程中的一个文件的写入和读取?
我有一个从文件读取(使用file.read()
)的进程和一个正在写入同一文件(file.write()
)的进程。问题是它不起作用 - 我没有得到任何错误,但它们不能同时运行。我试过让读写操作无阻塞然后刷新流,如下:读取/写入同一文件的两个进程Python
fcntl.fcntl(file, fcntl.F_SETFL, os.O_NONBLOCK)
file.write(msg)
file.flush()
我完全误解了吗?应该如何完成从不同进程中的一个文件的写入和读取?
test1.py
import os
f = open('txt.txt', 'a', os.O_NONBLOCK)
while 1:
f.write('asd')
f.flush()
test2.py
import os
f = open('txt.txt', 'r', os.O_NONBLOCK)
while 1:
print f.read(3)
这工作对我很好。
是的,这对我来说也很好,谢谢。 – Andreas 2010-07-09 09:41:34
请注意,os.O_NONBLOCK在Windows下不可用。 – yoyo 2015-06-30 01:52:57