2010-08-31 81 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)) 

假設線是你的線條

列表
相關問題