2008-11-22 141 views
4

我需要編寫一些方法來加載/保存二進制文件中的某些類。不過,我也希望能夠接受來自其他地方的二進制數據,例如二進制字符串。Python輸入/輸出,文件

在C++中,我可以通過簡單地使我的類方法使用std :: istream和std :: ostream來實現這一點,它可以是文件,串流,控制檯等等。

python是否有一個類似的輸入/輸出類,它可以表示幾乎任何形式的I/O,或至少是文件和內存?

+0

類 - 它們自己 - 是Python字節碼,由Python自動保存到文件中。您可能正在保存和恢復對象(類的實例)。如果你的意思是對象,請重寫你的問題來說objets或實例。 – 2008-11-22 01:08:00

回答

10

Python的方式是接受實現read()或write()的對象。如果你有一個字符串,就可以做到這一點與StringIO

from cStringIO import StringIO 

s = "My very long string I want to read like a file" 
file_like_string = StringIO(s) 
data = file_like_string.read(10) 

記住,Python使用鴨打字:你不必涉及一個共同的基類。只要你的對象實現了read(),它就可以像文件一樣讀取。