我正在为使用定制软件许可证的人抓取一份Html报告,作为批量发送电子邮件的方式,要求在需要时释放许可证。
我将从html文件中读取的字符串拆分为一个列表,由换行符分隔,并.split()
将我不需要的其他内容(如html格式,pc名等)拆分。
文件的输出如下:
["foo.bar", 'test.name', "john.doe"] etc.
我在每个名称的末尾添加了@[companyname].com
,并将整个列表转换为字符串。然后,我来谈谈我的问题。我想摆脱列表中不需要的文本。如下图所示:
onlineUsers = str(userEmailAddress).replace(",",";").replace("[","").replace("]","").replace("'","")
我添加了以下浏览器弹出窗口,底部带有mailto链接:
webbrowser.open_new("mailto:" + onlineUsers)
一切都像梦一样,但是.replace()
的链接真的让我感到烦恼。我环顾四周寻找更优雅的解决方案,但它们最终变得更加笨重,似乎就像在钉子上使用大锤一样。
是否有一种优雅的方式可以同时进行多次替换? 或者,至少,是否有更好的格式化方法?
答案 0 :(得分:1)
为避免明确链接,您可以创建dict()
文本替换为键,文本替换为值 t,类似于这个:
lst = ["blah[,].com", "gen@,]'com"]
rpl = {
"," : ";",
"[" : "",
"]" : "",
"'" : ""
}
lst1 = []
for lst_v in lst :
for k, v in rpl.items():
lst_v = lst_v.replace(k, v)
lst1.append(lst_v)
print lst1
这将导致:
['blah;.com', 'gen@;com']
答案 1 :(得分:0)
请同时阅读我对原始问题的评论。
至于仍然提供答案,我之前使用过的是:
for char in ['b\'', "\'", "\\n", '"', '[', ']', ',']: # Add any kind of char you would like to remove
if char in targeted_variable_value:
clean_output = targeted_variable_value.replace(char, "")