Python输入/输出,文件

时间:2008-11-22 00:31:32

标签: python

我需要编写一些方法来在二进制文件中加载/保存一些类。但是我也希望能够接受来自其他地方的二进制数据,例如二进制字符串。

在c ++中我可以通过简单地让我的类方法使用std :: istream和std :: ostream来实现这一点,它可以是文件,字符串流,控制台等等。

python是否有类似的输入/输出类,可以表示几乎任何形式的i / o,或者至少是文件和内存?

2 个答案:

答案 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模块也可能对您有所帮助。