在 Python 中生成隨機字串
-
在 Python 中使用
random.choice()
和string.join()
方法生成隨機字串 -
在 Python 中使用
uuid.uuid4()
方法生成隨機字串 -
在 Python 中使用
StringGenerator.render_list()
方法生成隨機字串
在本教程中,我們將研究在 Python 中生成隨機字串的各種方法。隨機字串生成技術用於生成隨機的使用者名稱,密碼或檔名等。
在某些情況下,我們需要加密安全的字串,即隨機密碼或金鑰生成。如果我們需要使用隨機字串作為隨機的使用者名稱和檔名等,僅使用隨機字串就足夠了。在本教程中,我們將討論兩種型別的隨機字串生成,下面將對此進行說明。
在 Python 中使用 random.choice()
和 string.join()
方法生成隨機字串
random.choice(seq)
方法從作為輸入提供的序列 seq
中返回一個隨機選擇的元素。string.join(iterable)
方法通過使用提供的 string
值作為分隔符來連線 iterable
的元素,並返回結果字串作為輸出。
要在 Python 中生成隨機字串,我們需要向 random.choice()
方法提供字元序列,以使我們的程式碼從中生成隨機字串。輸入序列可以由大寫字母,小寫字母,數字和標點符號等組成。
我們可以分別在大寫字母和小寫字母序列中使用 string.ascii_uppercase
和 string.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']