在两个独立的 python 程序之间传输数据有哪些好方法?

What are some good ways to transfer data between two independent python programs?

我的设备后台有两个独立的 python 模块 运行。即使我需要它们是独立的,我也需要每隔几秒将一些字符串数据从一个传输到另一个。我目前正在通过将数据写入一个文本文件来做到这一点,该文本文件不断受到两者的监控。有没有更好的方法呢?如果可能,速度更快、更安全。

您正在寻找的解决方案是命名管道,也称为fifo,这是[=16]的一种机制=]进程间通信。根据man-pages

"A FIFO special file (a named pipe) can be opened by 读取或写入的多个进程。当进程是 通过 FIFO 交换数据,内核在内部传递所有数据 而不将其写入文件系统。因此,FIFO 专用文件 文件系统上没有内容;文件系统条目仅用于 作为参考点,以便进程可以使用 文件系统中的名称。"

这是 python:

中命名管道的使用示例
import os

NAMED_PIPE = 'mypipe'

try:
    os.mkfifo(NAMED_PIPE)
except OSError: 
    raise

with open(NAMED_PIPE) as fifo:
    while True:
        data = fifo.read()
        if len(data) == 0:
            break
        print('[x] Data: {}'.format(data))