2012-02-07 262 views
1

我正在嘗試將re.findall的內容寫入文件。我試過將Python數組轉換爲字符串

output_file.write (findall(tags_pattern, searchtext)) 

但我得到了一個類型錯誤。如何將其轉換爲可寫入文件的類型?

感謝

回答

1

最簡單的方法是JSON編碼它。查看json模塊。

+0

是的,像一個魅力工作,謝謝你 – 2012-02-07 23:03:12

1

你有str(res)repr(res)功能,但你也可以做','.join(res)

1

re.findall返回searchtext中找到的匹配列表tags_pattern。這些比賽只是字符串。將字符串列表轉換爲可寫入文件的單個字符串的最簡單方法是對錶示要在列表中的字符串之間插入的分隔符的字符串調用str.join。例如,如果您想將每個匹配存儲在自己的行中,您可以致電'\n'.join(findall(tags_pattern, searchtext))

1

pickle模塊的構建是爲了將Python結構快速存儲在文件中。它幾乎不像JSON或其他序列化格式那樣便攜,但取決於您的目的,這可能就足夠了。

要使用泡菜:

import re, pickle 
r = re.findall(pattern, text) 
with open('results.pkl', 'wb') as resultsfile: 
    pickle.dump(r, resultsfile) 

要恢復列表,使用pickle.load

with open('results.pkl', 'rb') as resultsfile: 
    r2 = pickle.load(resultsfile) 

我會警惕在生產代碼中使用這個的,或者你需要傳輸重找到一個網絡客戶端的結果,但爲了快速測試和本地存儲,這可能是最簡單的。