将Python数组转换为字符串

问题描述:

我正在尝试将re.findall的内容写入文件。我试过将Python数组转换为字符串

output_file.write (findall(tags_pattern, searchtext)) 

但我得到了一个类型错误。如何将其转换为可写入文件的类型?

感谢

最简单的方法是JSON编码它。查看json模块。

+0

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

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

re.findall返回searchtext中找到的匹配列表tags_pattern。这些比赛只是字符串。将字符串列表转换为可写入文件的单个字符串的最简单方法是对表示要在列表中的字符串之间插入的分隔符的字符串调用str.join。例如,如果您想将每个匹配存储在自己的行中,您可以致电'\n'.join(findall(tags_pattern, searchtext))

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) 

我会警惕在生产代码中使用这个的,或者你需要传输重找到一个网络客户端的结果,但为了快速测试和本地存储,这可能是最简单的。