一、相关库方法使用
1、随机字符
import string
resultletters1 = string.ascii_letters #大小写字母
resultletters2 = string.ascii_lowercase #小写字母
resultletters3 = string.ascii_uppercase #大写字母
resultletters4 = string.digits #数字
resultletters5 = string.punctuation #字符
#输出
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
2、随机输出
#获取指定个数的字母,且随机排序
#1、获取a,b之间的整数
ranLen = random.randint(0,100)
#2、获取指定长度的字符串sample(a,b)
# b的长度需小于等于a
str = ''
for i in range(1,3):
str = str+resultletters1
GetStr = random.sample(str,ranLen)
print(GetStr)
二、实例:生成指定格式的测试数据
1、生成用户名,格式为 user001ALDJldwje(user前缀+数字+随机字母)
(1)生成随机指定长度的字符串
#获取随机长度的字符串
import random
import string
def GetRandomString(user_min,user_max):
letters1 = string.ascii_letters
ranLen = random.randint(user_min,user_max)
#2、获取指定长度的字符串sample(a,b)
# b的长度需小于等于a
str = ""
for i in range(1,3):
str = str+letters1
#通过join()方法连接字符
GetStr = ''.join(random.sample(str,ranLen))
print(GetStr)
if __name__ == '__main__':
user_min = int(input('请输入用户名的最小长度'))
user_max = int(input('请输入用户名的最大长度'))
obj = GetRandomString(user_min,user_max)
(2)加入前缀和中间的数字,通过中间的数字,控制生成的用户名个数(批量构造用户名数据)
#获取随机长度的字符串
import random
import string
def GetRandomString(user_min,user_max,pre,userNum):
letters1 = string.ascii_letters
ranLen = random.randint(user_min,user_max)
#2、获取指定长度的字符串sample(a,b)
# b的长度需小于等于a
str = ""
for i in range(1,3):
str = str+userNum+letters1
#通过join()方法连接字符
GetStr = ''.join(random.sample(str,ranLen))
# for i in range(1,num):
# num = '00'+str(num)
#连接前缀,数量,随机字符串
GetStr = pre+userNum+GetStr
return GetStr
if __name__ == '__main__':
user_min = int(input('请输入用户名的最小长度'))
user_max = int(input('请输入用户名的最大长度'))
pre = input('请输入前缀字符串')
userNum = int(input('请输入需要构造的用户数量'))
for i in range(1,userNum):
userNum = '00'+'userNum'
str1 = GetRandomString(user_min,user_max,pre,userNum)
print(str1)
(3)保存在csv数据文件中
if __name__ == '__main__':
user_min = int(input('请输入用户名的最小长度'))
user_max = int(input('请输入用户名的最大长度'))
pre = input('请输入前缀字符串')
userNum = int(input('请输入需要构造的用户数量'))
file = open('username.csv','w',newline='')
writer = csv.writer(file)
for i in range(1,userNum):
userNum = '00'+'userNum'
str1 = GetRandomString(user_min,user_max,pre,userNum)
writer.writerow([str1])
print(str1)
file.close()