Python 3多次替换

时间:2016-05-16 18:33:27

标签: python replace python-3.4

我不知道为什么这个问题被搁置为“关闭主题”。"我要求编程帮助,而不是参考(这就是解释为什么它被关闭的说法)。这是我原来的问题: 我有一个python 3脚本,用于将HTML格式的电子邮件发送到大约600人的列表中。 Sendmail显然不能发送高于127(十进制)的非ascii字符,除非我跳过带有MIME的箍。所以我考虑用HTML&#...来批量替换所有重音字符。等同物。

我宁愿不使用正则表达式,因为我不熟练使用正则表达式。有没有办法不使用循环,或至少不是一个复杂的循环?

2 个答案:

答案 0 :(得分:2)

用Google搜索" python编码html实体",第一个结果:https://wiki.python.org/moin/EscapingHtml

  

通过ASCII编码转义的内置HTML / XML

     

将非ASCII字符(如德语变音符号或带重音符号的字母)转换为HTML等效字符的一种非常简单的方法是将它们从unicode编码为ASCII并使用xmlcharrefreplace编码错误处理:

>>> a = u"äöüßáà"
>>> a.encode('ascii', 'xmlcharrefreplace')
'äöüßáà'

答案 1 :(得分:1)

您可以使用str.translate()html包中的实体:

import html

text = "a text with ä and ö"
ent = {k: '&{};'.format(v) for k, v in html.entities.codepoint2name.items()}
print(text.translate(ent))

输出:

a text with ä and ö