在python; 将文件列表转换为像对象一样的文件

nic*_*ell 1 python text

呃,所以我正在处理解析器等等,而且我将从一个处理文件的东西转到另一个.

我的代码的第一部分的输出是一个字符串列表; 我正在考虑将每个字符串作为文本文件中的一行.

代码的第二部分需要一个文件类型作为输入.

所以我的问题是,是否有一种正确的,pythonic的方式将字符串列表转换为像对象一样的文件?

我可以将我的字符串列表写入文件,然后重新打开该文件,它可以正常工作,但如果没有必要,写入磁盘似乎有点傻.

我相信所有第二部分需要的是在文件上调用'read()',就像对象一样,所以我也可以用read作为方法定义一个新类,它返回一个长字符串,这是所有字符串的串联线串.

谢谢, - 快

mik*_*iku 9

StringIO实现(几乎)所有stdio方法.例:

>>> import StringIO
>>> StringIO.StringIO("hello").read()
'hello'
Run Code Online (Sandbox Code Playgroud)

cStringIO是一个更快的对手.

要转换您的字符串列表,只需join它们:

>>> list_of_strings = ["hello", "line two"]
>>> handle = StringIO.StringIO('\n'.join(list_of_strings))
>>> handle.read()
'hello\nline two'
Run Code Online (Sandbox Code Playgroud)