如何在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/