我需要编写一些方法来在二进制文件中加载/保存一些类。但是我也希望能够接受来自其他地方的二进制数据,例如二进制字符串。
在c ++中我可以通过简单地让我的类方法使用std :: istream和std :: ostream来实现这一点,它可以是文件,字符串流,控制台等等。
python是否有类似的输入/输出类,可以表示几乎任何形式的i / o,或者至少是文件和内存?
答案 0 :(得分: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使用duck-typing:您不必涉及公共基类。只要你的对象实现了read(),就可以像文件一样读取它。
答案 1 :(得分:0)
Pickle and cPickle模块也可能对您有所帮助。