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)