2011-11-16 67 views
1

我必須從Python 2.5調用一個外部API(win32),它要求我提供一個文件名並返回一個結果。如何使用Python中的內存映射文件並將其傳遞給需要文件名的外部API?

爲了加速進程,我不想將數據保存到經典文件中,我更願意將其保存在內存中,並在API調用返回後釋放它。

外部函數只需要讀取訪問權限。

我看着mmap但例子並不十分廣泛;)

+1

使用經典文件應該沒問題。操作系統不應該實際將數據寫入磁盤,而是將其緩存在內存中。 'mmap'在這裏沒有幫助 - 它用於將磁盤上的真實文件映射到虛擬內存中。 –

+0

謝謝,但我相信操作系統在這裏沒有做適當的工作! – sorin

回答

0

你嘗試使用命名管道?

在Windows上,命名管道可以使用標準的文件功能來訪問(CreateFile()ReadFile()WriteFile() ...),使用形式\\.\pipe\name的特殊文件名。您的外部API可能能夠從管道中讀取,您可以從您的python腳本創建的管道中輸入必要的數據。