pyhton2 and python3 生成随机数字、字母、符号字典(用于撞库测试/验证码等) |
您所在的位置:网站首页 › python随机生成字母和数字 › pyhton2 and python3 生成随机数字、字母、符号字典(用于撞库测试/验证码等) |
#!/usr/bin/env python# encoding: utf-8#@author: jack#@contact: [email protected]#@site: https://www.cnblogs.com/jackzz#@software: PyCharm import threadingimport queueimport 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()
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |