Python输入/输出,文件

4 投票
2 回答
705 浏览
提问于 2025-04-11 18:59

我需要写一些方法,把一些类的数据加载到二进制文件中,或者从二进制文件中保存数据。不过,我还想能接受来自其他地方的二进制数据,比如一个二进制字符串。

在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()方法,它就可以像文件一样被读取。

撰写回答