python生成随机字符串_Python生成随机字符串

方法一、依赖python本身的方法实现

 

python生成随机字符串

We can generate a random string in Python using the random module. Sometimes we want to generate a random string for unique identifiers, session id or to suggest a password.

我们可以使用random模块在Python中生成随机字符串。 有时我们想为唯一标识符,会话ID或建议密码生成一个随机字符串。

 

Python生成随机字符串 (Python Generate Random String)

Let’s define the utility function to generate a random string from the given sequence of characters and specified size.

让我们定义实用程序函数,以根据给定的字符序列和指定的大小生成随机字符串。

复制代码
import random
import string
 
def random_string_generator(str_size, allowed_chars):
    return ''.join(random.choice(allowed_chars) for x in range(str_size))
 
chars = string.ascii_letters + string.punctuation
size = 12
 
print(chars)
print('Random String of length 12 =', random_string_generator(size, chars))
复制代码

Output:

输出:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;?@[\]^_`{|}~
Random String of length 12 = 'MP'?EI$MO%w

 

We are using random.choice() function to select a random character from the provided sequence of characters. Then we are using for loop to run it given number of times. Then we are using string join() function to concatenate them and return the randomly generated string.

我们正在使用random.choice()函数从提供的字符序列中选择一个随机字符。 然后,我们使用for循环运行给定次数。 然后,我们使用字符串join()函数将它们连接起来并返回随机生成的字符串。

What if we want to keep the random string size as variable, say between 8 and 12 characters. Let’s tweak our function little bit to randomly select the size of the random string.

如果我们想将随机字符串的大小保留为变量,例如8到12个字符,该怎么办? 让我们稍微调整一下函数以随机选择随机字符串的大小。

复制代码
import random
from random import randint
import string
 
def random_string_generator_variable_size(min_size, max_size, allowed_chars):
    return ''.join(random.choice(allowed_chars) for x in range(randint(min_size, max_size)))
 
 
chars = string.ascii_letters + string.punctuation
print('Random String of random length (6-12) =', random_string_generator_variable_size(6, 12, chars))
复制代码

Output: Random String of random length (6-12) = d;@o/?[yq=

输出: Random String of random length (6-12) = d;@o/?[yq=

The code is almost the same as earlier function except for the use of the randint() function. This is done to randomly select the size of the randomly generated string.

除了使用randint()函数外,该代码与早期函数几乎相同。 这样做是为了随机选择随机生成的字符串的大小。

 

随机UUID生成 (Random UUID Generation)

If you want a Unique ID based on RFC-4122 specifications, then you can use Python uuid module.

如果您想要基于RFC-4122规范的唯一ID,则可以使用Python uuid模块。

import uuid
 
print('Random UUID from uuid1() =', uuid.uuid1())
print('Random UUID from uuid4() =', uuid.uuid4())

Output:

输出:

Random UUID from uuid1() = dcc1044e-d76b-11e8-b54e-186590db0e15
Random UUID from uuid4() = a0e98c8d-a6fd-4125-bc1c-69ffe6456cb6

 

 方法二、利用自己输出的字符串

复制代码
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
     
    import random
    import string
     
    #第一种方法
     
    seed = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+=-"
    sa = []
    for i in range(8):
    sa.append(random.choice(seed))
    salt = ''.join(sa)
    print salt
     
    #第二种方法
     
    salt = ''.join(random.sample(string.ascii_letters + string.digits, 8))
    print salt
复制代码

 

 

 

 

 

GitHub RepositoryGitHub存储库中检出完整的python脚本和更多Python示例。

翻译自: https://www.journaldev.com/23782/python-generate-random-string

posted @   陈晓猛  阅读(9193)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2018-10-17 【Iftop】实时监控流量工具
2018-10-17 【Shell】常用脚本
点击右上角即可分享
微信分享提示

目录导航