首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >读/写同一文件的两个进程Python

读/写同一文件的两个进程Python
EN

Stack Overflow用户
提问于 2010-07-09 17:14:16
回答 3查看 21.8K关注 0票数 23

我有一个进程在读文件(使用file.read()),另一个进程在写同一个文件(file.write())。问题是它不工作-我没有得到错误,但它们不能同时运行。我已经尝试使读写操作不阻塞,然后刷新流,如下所示:

代码语言:javascript
复制
fcntl.fcntl(file, fcntl.F_SETFL, os.O_NONBLOCK)
file.write(msg)
file.flush()

我是不是完全误解了?应该如何从不同的进程完成对一个文件的写入和读取?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-09 17:24:03

test1.py

代码语言:javascript
复制
import os
f = open('txt.txt', 'a', os.O_NONBLOCK)
while 1:
        f.write('asd')
        f.flush()

test2.py

代码语言:javascript
复制
import os
f = open('txt.txt', 'r', os.O_NONBLOCK)
while 1:
    print f.read(3)

这对我来说很好。

票数 22
EN

Stack Overflow用户

发布于 2010-07-09 17:23:42

有使用通用文件的理由吗?使用sockets进行进程间通信可能要容易得多。

票数 9
EN

Stack Overflow用户

发布于 2018-07-27 08:29:03

另一种很好的方法是使用管道

This example实例化一个管道,该管道返回一个读取器和一个写入器对象。然后一个进程使用写入器向管道写入数据,另一个进程使用读取器从管道中读取数据。

https://docs.python.org/3/library/os.html#os.pipe os.pipe():Python

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3211292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档