如何在Python中的文件中包装一个string?

如何用string的内容创build类文件对象(与文件相同的鸭子types)?

对于Python 2.x,请使用StringIO模块。 例如:

>>> from cStringIO import StringIO >>> f = StringIO('foo') >>> f.read() 'foo' 

我使用cStringIO(这是更快),但请注意,它不接受无法编码为纯ASCIIstring的Unicodestring 。 (您可以通过将“from cStringIO”更改为“from StringIO”来切换到StringIO)。

对于Python 3.x,请使用io模块。

 f = io.StringIO('foo') 

在Python 3.0中:

 import io with io.StringIO() as f: f.write('abcdef') print('gh', file=f) f.seek(0) print(f.read()) 

两个很好的答案。 我会添加一个小技巧 – 如果你需要一个真正的文件对象(一些方法需要一个,而不仅仅是一个接口),下面是创build一个适配器的方法: