我有一個從文件讀取(使用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