方法一:定义一个函数,参数为所要生成随机字符串的长度。通过random.randint(a, b)方法得到随机数字,具体函数如下:
def generate_random_str(randomlength=16):
"""
生成一个指定长度的随机字符串
"""
random_str = ''
base_str = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789'
length = len(base_str) - 1
for i in range(randomlength):
random_str += base_str[random.randint(0, length)]
return random_str
f = generate_random_str(24) print (f)
得到结果:
gSY28gHCpTiL1yH0hO0uslM2
方法二:方法一中我们采用将数字及字母罗列出来,并从中随机选择的方法进行生成,显得不够pythonic,方法二中我们采用string模块得到数字及字母,并通过列表生成式的方法得到结果。方法如下:
import random import string def generate_random_str(randomlength=16): """ 生成一个指定长度的随机字符串,其中 string.digits=0123456789 string.ascii_letters=abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ """ str_list = [random.choice(string.digits + string.ascii_letters) for i in range(randomlength)] random_str = ''.join(str_list) return random_str
测试下:
f = generate_random_str(24) print (f)
得到结果:
aCIyZ9a06gN6UlBCmrjDfX4a