本文介紹Python3中String模塊ascii_letters和digits方法,其中ascii_letters是生成全部字母,從a-z和A-Z,digits是生成全部數字0-9.string.punctuation是全部標點'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'python
String模塊中的常量:git
string.digits:數字0~9app
string.ascii_letters:全部字母(大小寫)dom
string.lowercase:全部小寫字母async
string.printable:可打印字符的字符串函數
string.punctuation:全部標點spa
string.uppercase:全部大寫字母線程
>>> import string >>> string.digits '0123456789' >>> string.letters 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' >>> string.lowercase 'abcdefghijklmnopqrstuvwxyz' >>> string.printable '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c' >>> string.punctuation '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~' >>> string.uppercase 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
#!/usr/bin/env python
# encoding: utf-8
#@author: jack
#@contact: 935650354@qq.com
#@site: https://www.cnblogs.com/jackzz
#@software: PyCharm
import threading
import queue
import random, string
class ThreadPool:
def __init__(self, n):
"""
構造一個指定數量線程的線程池.
:param n: 線程數量
"""
self.queue_obj = queue.Queue()
for i in range(n):
# 開啓池中的線程對象
threading.Thread(target=self.worker, daemon=True).start()
def worker(self):
"""
線程對象, 寫while True是爲了可以一直去執行任務.
:return: None
"""
while True:
func = self.queue_obj.get()
func()
self.queue_obj.task_done()
def apply_async(self, func):
"""
向隊列中傳入的須要執行的函數對象.
:param func: 函數對象
:return: None
"""
self.queue_obj.put(func)
def join(self):
"""
等待隊列中的內容被取完.
:return: None
"""
self.queue_obj.join()
def rand_str(num, length=8):
with open('pwd_dir.txt', 'w') as f:
for i in range(num):
chars = string.ascii_letters+string.digits+string.punctuation
s = [random.choice(chars) for i in range(length)]
s=set(s)
f.write('{0}\n'.format(''.join(s)))
f.close()
if __name__ == '__main__':
P = ThreadPool(100)#不怕內存溢出的小夥伴往大了設,通常100個知足平常所需了
P.apply_async(rand_str(200000000))#跑個2E個組合的字典
P.join()
python2 方法1、
#!/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
方法2、code
#!/usr/bin/env python # -*- coding: utf-8 -*- import random import string salt = ''.join(random.sample(string.ascii_letters + string.digits, 8)) print salt