我可以使用单个文件作为缓冲区吗?即同时写入和读取

时间:2009-03-19 11:20:44

标签: python file-io

我希望有一个应用程序在监视器正在读取信息的同时写出信息。该应用程序是“嵌入式”(在Win32 XP上),因此限制了内存和I / O功能。

我能想到的最简单的方法是将数据写入应用程序的缓冲区文件,然后使用监视器应用程序读取相同的文件。编写器应用程序是C ++,读者目前是Win32 XP上的Python。

有没有图书馆可以做到这一点?有没有人见过这个例子?

我不想使用数据库,因为我不想链接到applcation中的数据库库。即没有空间,嵌入式平台可能不支持。

另一种方法是通过网络连接,但我认为文件是最简单的解决方案。

3 个答案:

答案 0 :(得分:4)

大多数系统都有多种解决方案可以满足您的需求,例如管道和unix套接字。与常规文件不同,它们适用于此目的。但是有一些程序可以在常规文件上执行此操作,我认为最明显的例子是unix-utility tail,它可以“跟踪”文件。

看看
http://msdn.microsoft.com/en-us/library/aa365590(VS.85).aspx

Python为win32提供了一个很好的包装库,所以你在那里看到的任何东西都可能是从python访问的。

答案 1 :(得分:2)

您可以使用内存映射文件,称为mmap的标准Python模块。

答案 2 :(得分:1)

您所谈论的内容称为“进程间通信”。有很多方法可以做到这一点。

使用Unix管道。

https://docs.python.org/library/pipes.html

使用套接字。

https://docs.python.org/library/socket.html

使用队列。

https://docs.python.org/library/queue.html

其中任何一个都比文件I / O好。