Python输入/输出,文件
我需要写一些方法,把一些类的数据加载到二进制文件中,或者从二进制文件中保存数据。不过,我还想能接受来自其他地方的二进制数据,比如一个二进制字符串。
在C++中,我可以通过让我的类方法使用std::istream和std::ostream来实现,这样它们可以是文件、字符串流、控制台等等。
那么,Python有没有类似的输入/输出类,可以表示几乎所有形式的输入输出,或者至少是文件和内存呢?
2 个回答
0
Pickle 和 cPickle 模块可能对你有帮助。
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()方法,它就可以像文件一样被读取。