[英]Strip a string from either one or two digits
我想发送Direct-To-MX邮件。 为了检索正确的MX服务器,我使用以下功能。
import dns.resolver
def MX():
domain = self.to.split('@')[1] # self.to is an email address
mx = resolve_MX(domain)
s = smtplib.SMTP(mx, 25)
return s
def resolve_MX(domain):
MXlist = []
for mx in dns.resolver.query(domain, 'MX'):
MXlist.append(mx)
rand = randint(0,len(MXlist)-1)
mx_record = MXlist[rand]
return str(mx_record)[3:]
解析程序返回类似20 ALT1.ASPMX.L.GOOGLE.COM
或1 ASPMX.L.GOOGLE.COM
的字符串 。 MX服务器前面的数字表示优先级。 这可以是两位数或一位数,这是我的问题。 因为dns.resolver不返回元组,例如。 (priority, server)
,如何剥离字符串的一位或两位数优先级。 现在,我假设优先级将是两位数。
由于您的字符串由空格分隔为两部分,因此您可以执行以下操作:
final_str = received_string.split(' ')
>>> print final_str
['20', 'ALT1.ASPMX.L.GOOGLE.COM']
此外,如果要根据数字执行优先级比较 ,则优先级数字最好是int
而不是string
。 为此,您可以执行以下操作:
final_str = received_string.split(' ')
final_str[0] = int(final_str[0])
>>> print final_str
[20, 'ALT1.ASPMX.L.GOOGLE.COM']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.