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

时间:2014-04-25 13:42:22

标签: python

我想发送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),如何删除字符串的单位或双位优先级。现在我假设优先级是一个两位数。

1 个答案:

答案 0 :(得分:1)

由于你的字符串被空格分成两部分,你可以这样做:

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'] 。为此,你可以这样做:

{{1}}