2010-08-31 68 views
1

呃,所以即时通讯解析器等等,我正在从一个处理文件到另一个文件。;将文件列表转换为文件类似于对象

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

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

所以我的问题是,是否有一个适当的,pythonic的方式来将字符串列表转换为像对象文件?

我可以将我的字符串列表写入一个文件,然后重新打开该文件并且它可以正常工作,但如果不必要的话,必须写入磁盘似乎有点愚蠢。我相信所有第二部分的需要是像对象一样在文件上调用'read()',所以我也可以定义一个新类,用read作为方法,返回一个长字符串,这是串联的所有线串。

感谢, -nick

回答

9

StringIO器械(几乎)所有标准输入输出方式。例如:

>>> import StringIO 
>>> StringIO.StringIO("hello").read() 
'hello' 

cStringIO是一个更快的对应物。

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

>>> list_of_strings = ["hello", "line two"] 
>>> handle = StringIO.StringIO('\n'.join(list_of_strings)) 
>>> handle.read() 
'hello\nline two' 
+0

哦,太棒了,就是这样。 我也做到了这一点,这也是工作,StringIO看起来更好。 类linesConverter: DEF __init __(个体,输入):在输入 self.buff = “” 为行: self.buff + =行 DEF读(个体,N): 一个= self.buff [0:n-1] self.buff = self.buff [n:-1] return a – 2010-08-31 18:55:29

3

您可以使用StringIO的和str.join你的清单上,即

import StringIO 
f = StringIO.StringIO("\n".join(lines)) 

假设线是你的线条

列表