我需要编写一些方法来加载/保存一些类到二进制文件和从二进制文件.但是我也希望能够接受来自其他地方的二进制数据,例如二进制字符串.
在c ++中我可以通过简单地使我的类方法使用std :: istream和std :: ostream来实现这一点,它可以是文件,字符串流,控制台等等.
python是否有类似的输入/输出类,可以表示几乎任何形式的i/o,或至少文件和内存?
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(),就可以像文件一样读取它.