Gerar strings aleatórias em Python

Muhammad Waiz Khan 30 janeiro 2023
  1. Gere strings aleatórias em Python usando os métodos random.choice() e string.join()
  2. Gere string aleatória em Python usando o método uuid.uuid4()
  3. Gere string aleatória em Python usando o método StringGenerator.render_list()
Gerar strings aleatórias em Python

Neste tutorial, veremos vários métodos para gerar strings aleatórias em Python. As técnicas de geração de string aleatória são usadas para gerar nomes de usuário, senhas ou nomes de arquivos aleatórios, etc.

Em alguns casos, precisamos de strings criptograficamente seguras, ou seja, senha aleatória ou geração de chave. Apenas strings aleatórias serão suficientes se precisarmos usar strings aleatórias como nome de usuário e nome de arquivo aleatórios, etc. Discutiremos os dois tipos de geração de string aleatória neste tutorial, que são explicados abaixo.

Gere strings aleatórias em Python usando os métodos random.choice() e string.join()

O método random.choice(seq) retorna um elemento escolhido aleatoriamente da sequência seq fornecida como entrada. E o método string.join(iterable) junta os elementos do iterable usando o valor fornecido da string como separador e retorna a string resultante como saída.

Para gerar uma string aleatória em Python, precisamos fornecer a sequência de caracteres a partir da qual queremos que nosso código gere a string aleatória para o método random.choice(). A sequência de entrada pode consistir em letras maiúsculas, letras pequenas, dígitos e sinais de pontuação, etc.

Podemos usar string.ascii_uppercase e string.ascii_lowercase para sequência de letras maiúsculas e minúsculas, respectivamente, string.ascii_letters para ambos, string.digits para sequência de dígitos e string.punctuation para sequência de sinais de pontuação em Python.

O código de exemplo a seguir demonstra como gerar o tipo necessário de string aleatória usando os métodos random.choice() e string.join() em Python.

import string
import random

number_of_strings = 5
length_of_string = 8
for x in range(number_of_strings):
    print(
        "".join(
            random.choice(string.ascii_letters + string.digits)
            for _ in range(length_of_string)
        )
    )

Resultado:

wOy5ezjl
j34JN8By
clA5SNZ6
D8K0eggH
6LjRuYsb

Para gerar strings aleatórias criptograficamente protegidas, podemos usar o método random.SystemRandom(), que gera números aleatórios a partir das fontes do sistema operacional.

Código de exemplo:

import string
import random

number_of_strings = 5
length_of_string = 8
for x in range(number_of_strings):
    print(
        "".join(
            random.SystemRandom().choice(string.ascii_letters + string.digits)
            for _ in range(length_of_string)
        )
    )

Resultado:

PEQBU72q
xuwUInGo
asVWVywB
SAsMRjka
CrbIpuR6

Gere string aleatória em Python usando o método uuid.uuid4()

O método uuid.uuid4() gera e retorna um UUID aleatório. O UUID é um identificador universal exclusivo de 128 bits usado para identificar informações em um sistema ou rede.

Este método é útil no caso de desejarmos gerar identificadores aleatórios e únicos a partir de strings aleatórias. O código de exemplo a seguir demonstra como usar o método uuid.uuid4() para obter uma string aleatória em Python.

import uuid

print(uuid.uuid4())

Resultado:

440a93fe-45d7-4ccc-a6ee-baf10ce7388a

Gere string aleatória em Python usando o método StringGenerator.render_list()

O StringGenerator().render_list() é uma maneira fácil de gerar várias strings aleatórias em Python. O StringGenerator() leva a expressão regular como entrada, que define os caracteres que devem ser usados ​​para gerar as strings aleatórias. No método renderlist(len, unique=), len especifica o comprimento da lista de saída contendo as strings aleatórias, e o argumento de palavra-chave unique pode ser definido como True se quisermos as strings de saída exclusivas.

O módulo StringGenerator precisa ser instalado primeiro para usar este método. O código de exemplo a seguir demonstra como usar o método StringGenerator.render_list() para gerar strings aleatórias em Python.

from strgen import StringGenerator

StringGenerator("[\l\d]{10}").render_list(3, unique=True)

Resultado:

['m98xQHMlBI', 'V4O8hPMWfh', 'cBJk3XcGny']

Artigo relacionado - Python String