2010-11-18 41 views
6

Python中是否存在C#MemoryStream的某些模擬(可以讓我將二進制數據從某些源直接寫入內存)?我將如何去使用它?Python中的MemoryStream模擬

+0

你問'StringIO'嗎? – 2010-11-18 15:34:59

回答

10

StringIO的是一種可能性:http://docs.python.org/library/stringio.html

此模塊實現一個類文件的類,StringIO,讀取和寫入字符串緩衝區中(也稱爲存儲器文件)。請參閱文件對象的操作說明(部分文件對象)。 (對於標準的字符串,見strunicode。)...

+3

或'cStringIO',這是相同的,但在C中以速度實現。 – 2010-11-18 15:47:16

3

如果您正在使用Python> = 3.0,嘗試了Adam's answer,你會發現,import StringIOimport cStringIO都給出一個導入錯誤。這是因爲StringIO是now part of the io module

Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import StringIO 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named 'StringIO' 
>>> # Huh? Maybe this will work... 
... 
>>> import cStringIO 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named 'cStringIO' 
>>> # Whaaaa...? 
... 
>>> import io 
>>> io.StringIO 
<class '_io.StringIO'> 
>>> # Oh, good! 
... 

您可以使用StringIO就好像它是一個普通的Python文件:write()close(),和所有爵士樂,另外還有getvalue()檢索字符串。