如何在Python中将字符串包装在文件中?
时间:2020-03-06 14:48:10 来源:igfitidea点击:
如何使用字符串的内容创建类似文件的对象(与File相同的鸭子类型)?
解决方案
对于Python 2.x,请使用StringIO模块。例如:
>>> from cStringIO import StringIO >>> f = StringIO('foo') >>> f.read() 'foo'
我使用cStringIO(速度更快),但请注意,它不接受无法编码为纯ASCII字符串的Unicode字符串。 (我们可以通过将" 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())
两个好的答案。如果我们需要一个真实的文件对象(某些方法需要一个,而不仅仅是一个接口),那么Id会增加一些技巧,这是创建适配器的一种方法:
- http://www.rfk.id.au/software/filelike/