python 多进程读写文件,读取/写入同一文件的两个进程Python
时间: 2023-07-06 19:08:32 浏览: 267
在 Python 中,可以使用 `multiprocessing` 模块来实现多进程读写文件。
以下是一个示例代码,其中有两个进程,一个进程用于写入数据到文件中,另一个进程用于读取文件中的数据:
```python
import multiprocessing
# 写入数据到文件的进程
def write_data(filename, data_queue):
with open(filename, "w") as f:
while True:
data = data_queue.get()
if data == "STOP":
break
f.write(data + "\n")
# 读取数据从文件的进程
def read_data(filename, data_queue):
with open(filename, "r") as f:
for line in f:
data_queue.put(line.strip())
if __name__ == "__main__":
# 创建一个进程共享队列
data_queue = multiprocessing.Queue()
# 创建写入文件的进程
write_process = multiprocessing.Process(target=write_data, args=("data.txt", data_queue))
# 创建读取文件的进程
read_process = multiprocessing.Process(target=read_data, args=("data.txt", data_queue))
# 启动进程
write_process.start()
read_process.start()
# 等待写入进程完成
write_process.join()
# 停止读取进程
data_queue.put("STOP")
```
在这个例子中,我们创建了一个共享队列 `data_queue`,写入进程将数据写入这个队列,读取进程从这个队列中读取数据。
需要注意的是,在写入进程中,我们需要将数据写入文件中并且添加一个换行符,而在读取进程中,我们需要使用 `strip()` 方法来去掉读取的每一行数据的换行符。此外,在写入进程完成后,我们向队列中添加一个 `STOP` 标记来停止读取进程。
阅读全文