2014-07-20 16 views
0

Python有memoryview用於查看緩衝區。Python流視圖

有沒有類似io流的東西,或者是一些實現它的庫?

的什麼,我想應該是(不當然的工作)的例子:

>>> import io 
>>> sr = io.BytesIO(b'12345') 
>>> print(sr[2:3]).read() 
... b'3' 

(這只是一個例子,底層的流不必是一個緩衝可言)

我希望看到普通字節的原因是流底層的內容可能非常大。

+0

流已經有'.seek'和'.read';你還需要什麼? – Eevee

+0

你想用這個圖書館做什麼? –

+0

我想創建另一個流的獨立視圖。當然,我可以使用seek或read,但這很方便,就像內存視圖一樣。 – simonzack

回答

1

您可以考慮mmap模塊。據我瞭解您的需求它可能會提供所需的功能。

+0

感謝您的建議,我試了一下,一個切片返回類型'字節'。我更新了這個問題來說明使用流的目的。 – simonzack

+0

通過使用'mmap',您可以將文件的相應區域(稱爲「頁面」)加載到內存中,並將未使用的文件加載到操作系統。如果您需要更精確地控制緩存在不同使用場景中的行爲方式,則應逐步下達特定的系統設施,例如Linux的[mmap(2)](http://linux.die.net/man/2/mmap)。如果您不需要這樣的精度,那麼您可以安全地假定文件的區域在訪問它們並在稍後卸載時加載。 – user3159253