我正在尝试将re.findall的内容写入文件。我试过了
output_file.write (findall(tags_pattern, searchtext))
但是我遇到了类型错误。如何将其转换为可以写入文件的类型?
由于
答案 0 :(得分:1)
您拥有str(res)
和repr(res)
功能,但您也可以执行','.join(res)
答案 1 :(得分:1)
最简单的方法是对它进行JSON编码。请参阅json模块。
答案 2 :(得分:1)
re.findall
会返回searchtext
tags_pattern
中找到的匹配项列表。那些比赛只是字符串。将字符串列表转换为可写入文件的单个字符串的最简单方法是在表示要在列表中的字符串之间插入的分隔符的字符串上调用str.join
。例如,如果您想将每个匹配项存储在自己的行中,则可以调用'\n'.join(findall(tags_pattern, searchtext))
。
答案 3 :(得分: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)
我要小心在生产代码中使用它,或者需要将re.findall结果传输到Web客户端,但是为了快速测试和本地存储,这可能是最简单的。