首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何找到适用于Windows的Python os.mkfifo()?

如何找到适用于Windows的Python os.mkfifo()?
EN

Stack Overflow用户
提问于 2018-08-14 03:40:41
回答 2查看 0关注 0票数 0

在Windows中的python中,我想创建两个文件对象,附加到同一个文件(它不必是硬盘上的实际文件),一个用于读取,另一个用于写入,这样,如果读取端尝试读取,它将永远得不到EOF(在写入某些内容之前它只会阻塞)。我认为在Linuxos.mkfifo()中可以完成这项工作,但是在Windows中它并不存在。我们能做些什么?(我必须使用文件对象)。

一些额外的细节:我有一个python模块 ,它通过stdin和stdout(使用RAW)来运行。

class Pusher(Thread):
        def __init__(self, source, dest, p1, name):
                Thread.__init__(self)
                self.source = source
                self.dest = dest
                self.name = name
                self.p1 = p1

        def run(self):
                while (self.p1.poll()==None) and\
                      (not self.source.closed) and (not self.source.closed):
                        line = self.source.readline()
                        logging.info('%s: %s' % (self.name, line[:-1]))
                        self.dest.write(line)
                        self.dest.flush()


exe_to_pythonmodule_reader, exe_to_pythonmodule_writer =\
                          get_fifo()
pythonmodule_to_exe_reader, pythonmodule_to_exe_writer =\
                          get_fifo()

p1 = subprocess.Popen(exe, shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE)

old_stdin = sys.stdin
old_stdout = sys.stdout

sys.stdin = exe_to_pythonmodule_reader
sys.stdout = pythonmodule_to_exe_writer

push1 = Pusher(p1.stdout, exe_to_pythonmodule_writer, p1, '1')
push2 = Pusher(pythonmodule_to_exe_reader, p1.stdin, p1, '2')

push1.start()
push2.start()
ret = pythonmodule.play()
sys.stdin = old_stdin
sys.stdout = old_stdout
EN

回答 2

Stack Overflow用户

发布于 2018-08-14 12:22:56

对于跨平台的解决方案,我建议在localhost上的套接字(127.0.0.1)上构建类似文件的对象,这是空闲在默认情况下所做的,以解决与你的问题非常相似的问题。

票数 0
EN

Stack Overflow用户

发布于 2018-08-14 13:37:32

管道是用于通信的进程共享内存的一部分。创建管道的进程是管道服务器。连接到管道的进程是管道客户端。一个进程将信息写入管道,然后另一个进程从管道读取信息。

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

https://stackoverflow.com/questions/-100005971

复制
相关文章

相似问题

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