Python小工具_批量生成随机邮箱

1、需求:
生成随机邮箱
‘’’
生成指定长度的随机英文+数字+后缀
邮箱后缀随机获取,不同的邮箱通过列表存储
‘’’

2、代码:
(1)方法一面向过程实现

import csv
import random
import string
#随机获取一个邮箱
def GetRandomString(self,email_min,email_max,list_email):
    #根据指定范围,随机邮箱字符串最大最小长度
    ranLen = random.randint(email_min,email_max)
    #随机邮箱后缀,从一个存储邮箱的list里选择
    email_form = random.choice(list_email)
    #可供选的字符串
    str = ""
    letters1 = string.ascii_letters  #字母
    letters2 = string.digits  # 数字
    for i in range(1,3):
        str = str+letters1+letters2+letters2+letters2+letters2
    #通过join()方法连接字符,去掉空格
    GetEmailStr = ''.join(random.sample(str,ranLen))

    #字符串连接,加上邮箱后缀
    Email = GetEmailStr+email_form
    return Email

#将生成的邮箱数据,保存在文件中
def Num_Email(self,email):
    file = open('EMail.csv', 'w', newline='')
    writer = csv.writer(file)
    for elements in email:
        writer.writerow([elements])
    file.close()

if __name__ == '__main__':
    email_min = int(input('请输入邮箱的最小长度'))
    email_max = int(input('请输入邮箱的最大长度'))
    eMailNum = int(input('请输入需要构造的邮箱数量'))
    list_email = ['@163.com', '@sina.com', '@qq.com', '@yy.com']
    list_Email = []
    for i in range(1,eMailNum):
        email = GetRandomString(email_min,email_max,list_email)
        list_Email.append(email)
        print(email)
    Num_Email(list_Email)

(2)面向对象方式实现

#生成随机邮箱
'''
生成指定长度的随机英文+数字+后缀
邮箱后缀随机获取,不同的邮箱通过列表存储
'''
import csv
import random
import string
class EMail():
    #初始化
    def __init__(self,email_min,email_max,list_email):
        self.email_min = email_min
        self.email_max = email_max
        self.list_email = list_email

    #随机获取一个邮箱
    def GetRandomString(self):
        #根据指定范围,随机邮箱字符串最大最小长度
        ranLen = random.randint(self.email_min,self.email_max)
        #随机邮箱后缀,从一个存储邮箱的list里选择
        email_form = random.choice(self.list_email)
        #可供选的字符串
        str = ""
        letters1 = string.ascii_letters  #字母
        letters2 = string.digits  # 数字
        for i in range(1,3):
            str = str+letters1+letters2+letters2+letters2+letters2
        #通过join()方法连接字符,去掉空格
        GetEmailStr = ''.join(random.sample(str,ranLen))

        #字符串连接,加上邮箱后缀
        Email = GetEmailStr+email_form
        return Email

    #将生成的邮箱数据,保存在文件中
    def Num_Email(self,email):
        file = open('EMail.csv', 'w', newline='')
        writer = csv.writer(file)
        for elements in email:
            writer.writerow([elements])
        file.close()

if __name__ == '__main__':
    email_min = int(input('请输入邮箱的最小长度'))
    email_max = int(input('请输入邮箱的最大长度'))
    eMailNum = int(input('请输入需要构造的邮箱数量'))
    list_email = ['@163.com', '@sina.com', '@qq.com', '@yy.com']
    list_Email = []
    obj = EMail(email_min,email_max,list_email)
    for i in range(1,eMailNum):
        email = obj.GetRandomString()
        list_Email.append(email)
        print(email)
    #将list里的邮箱保存在csv中
    obj.Num_Email(list_Email)


你可能感兴趣的:(一,python)