我如何创建一个类似文件的对象(同鸭类型的文件)与内容的一串?

有帮助吗?

解决方案

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

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

我使用cStringIO(更快),但请注意它没有接受Unicode无法编码为纯ASCII字符串的字符串。 (您可以通过将“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())

两个很好的答案。我想添加一个小把戏—如果你需要一个真正的文件的对象(其中一些方法期待一个,不只是一个接口),这是一种创建一个适配器:

这适用于Python2.7和Python3.x:

io.StringIO(u'foo')
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top