在 Python 中生成隨機字串

Muhammad Waiz Khan 2023年1月30日
  1. 在 Python 中使用 random.choice()string.join() 方法生成隨機字串
  2. 在 Python 中使用 uuid.uuid4() 方法生成隨機字串
  3. 在 Python 中使用 StringGenerator.render_list() 方法生成隨機字串
在 Python 中生成隨機字串

在本教程中,我們將研究在 Python 中生成隨機字串的各種方法。隨機字串生成技術用於生成隨機的使用者名稱,密碼或檔名等。

在某些情況下,我們需要加密安全的字串,即隨機密碼或金鑰生成。如果我們需要使用隨機字串作為隨機的使用者名稱和檔名等,僅使用隨機字串就足夠了。在本教程中,我們將討論兩種型別的隨機字串生成,下面將對此進行說明。

在 Python 中使用 random.choice()string.join() 方法生成隨機字串

random.choice(seq) 方法從作為輸入提供的序列 seq 中返回一個隨機選擇的元素。string.join(iterable) 方法通過使用提供的 string 值作為分隔符來連線 iterable 的元素,並返回結果字串作為輸出。

要在 Python 中生成隨機字串,我們需要向 random.choice() 方法提供字元序列,以使我們的程式碼從中生成隨機字串。輸入序列可以由大寫字母,小寫字母,數字和標點符號等組成。

我們可以分別在大寫字母和小寫字母序列中使用 string.ascii_uppercasestring.ascii_lowercase,兩者都使用 string.ascii_letters,數字序列使用 string.digits,標點符號序列使用 string.punctuation

下面的示例程式碼演示瞭如何使用 Python 中的 random.choice()string.join() 方法生成所需型別的隨機字串。

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)
        )
    )

輸出:

wOy5ezjl
j34JN8By
clA5SNZ6
D8K0eggH
6LjRuYsb

為了生成加密安全的隨機字串,我們可以使用 random.SystemRandom() 方法,該方法從作業系統的源中生成隨機數。

示例程式碼:

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)
        )
    )

輸出:

PEQBU72q
xuwUInGo
asVWVywB
SAsMRjka
CrbIpuR6

在 Python 中使用 uuid.uuid4() 方法生成隨機字串

uuid.uuid4() 方法生成並返回一個隨機 UUID。UUID 是一個 128 位長的通用唯一識別符號,用於標識系統或網路中的資訊。

如果我們要從隨機字串中生成隨機且唯一的識別符號,則此方法很有用。下面的示例程式碼演示瞭如何使用 uuid.uuid4() 方法在 Python 中獲取隨機字串。

import uuid

print(uuid.uuid4())

輸出:

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

在 Python 中使用 StringGenerator.render_list() 方法生成隨機字串

StringGenerator().render_list() 是在 Python 中生成多個隨機字串的簡便方法。StringGenerator() 將正規表示式作為輸入,它定義了用於生成隨機字串的字元。在 renderlist(len, unique=) 方法中,len 指定包含隨機字串的輸出列表的長度,如果我們想要唯一的輸出字串,可以將 unique 關鍵字引數設定為 True

要使用此方法,首先需要安裝 StringGenerator 模組。下面的示例程式碼演示瞭如何使用 StringGenerator.render_list() 方法在 Python 中生成隨機字串。

from strgen import StringGenerator

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

輸出:

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

相關文章 - Python String