繁体   English   中英

从一个或两个数字中删除一个字符串

[英]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.COM1 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM