我習慣了C++,並且構建了我的數據處理類/函數來處理流對象而不是文件。我想知道如何修改下面的代碼,以便它可以處理內存中的二進制數據流,而不是文件句柄。使用Python,我如何在內存中讀取/寫入數據,就像使用文件一樣?
def get_count(self):
curr = self.file.tell()
self.file.seek(0, 0)
count, = struct.unpack('I', self.file.read(c_uint32_size))
self.file.seek(curr, 0)
return count
在這種情況下,該代碼假定self.file
是一個文件,打開像這樣:
file = open('somefile.data, 'r+b')
我怎麼可能使用相同的代碼,但不是做這樣的事情:
file = get_binary_data()
其中get_binary_data()
返回一串二進制數據。雖然代碼沒有顯示出來,但我還需要寫入流(我認爲不值得爲此發佈代碼)。
另外,如果可能的話,我想新的代碼來處理文件。
_The上述鏈接不起作用,因爲( 「StringIO的和cStringIO」 已經消失在Python 3.0,他們只在2.0存在。IO取代了它們在3.0 「)_對不起這個評論,但它似乎是這個答案的傳統...... – tampe125 2017-01-12 13:56:53