本文介绍Python3中String模块ascii_letters和digits方法,其中ascii_letters是生成所有字母,从a-z和A-Z,digits是生成所有数字0-9.string.punctuation是所有标点'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'

String模块中的常量:

string.digits:数字0~9

string.ascii_letters:所有字母(大小写)

string.lowercase:所有小写字母

string.printable:可打印字符的字符串

string.punctuation:所有标点

string.uppercase:所有大写字母

  1. >>> import string
  2. >>> string.digits
  3. ''
  4. >>> string.letters
  5. 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
  6. >>> string.lowercase
  7. 'abcdefghijklmnopqrstuvwxyz'
  8. >>> string.printable
  9. '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
  10. >>> string.punctuation
  11. '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
  12. >>> string.uppercase
  13. 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  1. #!/usr/bin/env python
    # encoding: utf-8
    #@author: jack
    #@contact: 935650354@qq.com
    #@site: https://www.cnblogs.com/jackzz
    #@software: PyCharm
  2.  
  3. import threading
    import queue
    import random, string
  4.  
  5. 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()
  6.  
  7. def worker(self):
    """
    线程对象, 写while True是为了能够一直去执行任务.
    :return: None
    """
    while True:
    func = self.queue_obj.get()
    func()
    self.queue_obj.task_done()
  8.  
  9. def apply_async(self, func):
    """
    向队列中传入的需要执行的函数对象.
    :param func: 函数对象
    :return: None
    """
    self.queue_obj.put(func)
  10.  
  11. def join(self):
    """
    等待队列中的内容被取完.
    :return: None
    """
    self.queue_obj.join()
  12.  
  13. 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()
  14.  
  15. if __name__ == '__main__':
    P = ThreadPool(100)#不怕内存溢出的小伙伴往大了设,一般100个满足日常所需了
    P.apply_async(rand_str(200000000))#跑个2E个组合的字典
    P.join()

python2 方法一、

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import random
  4. import string
  5. #第一种方法
  6. seed = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+=-"
  7. sa = []
  8. for i in range(8):
  9. sa.append(random.choice(seed))
  10. salt = ''.join(sa)
  11. print salt

方法二、

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import random
  4. import string
  5.  
  6. salt = ''.join(random.sample(string.ascii_letters + string.digits, 8))
  7. print salt

pyhton2 and python3 生成随机数字、字母、符号字典(用于撞库测试/验证码等)的更多相关文章

  1. QTP生成随机数字+字母

    以下函数实现随机生成17位数(包括字母和数字),仍有改进的空间,可根据具体要求适当修改 Dim targetstring '调用返回函数给变量.Function过程通过函数名返回一个值 targets ...

  2. 利用JavaScript生成随机数字!

    <!DOCTYPE html> <html> <head> <title>1-99的随机数字</title> <script type ...

  3. Oracle中如何生成随机数字、随机字符串、随机日期

    .随机小数 dbms_random.value(low,high): --获取一个[low,high)之间的小数,包含low,不包含high 可以结合trunc函数获取整数 例如: select db ...

  4. [转]java生成随机数字和字母组合

    摘自 http://blog.csdn.net/xiayaxin/article/details/5355851 import java.util.Random; public String getC ...

  5. java 生成随机数字+字母组合 和字母组合

    生成随机数包含数字,字母 /** * 生成随机数当作getItemID * n : 需要的长度 * @return */ private static String getItemID( int n ...

  6. java 生成随机数字

    for(int i=0;i<size1;i++){ int n = (int)(java.lang.Math.random()*99); LinkNode newLink = new LinkN ...

  7. C# 生成四位数字字母混合验证码

    private static void Rand() { var arr = new List<string>(); ; i < ; i++) { arr.Add(i.ToStrin ...

  8. Mysql 生成随机数字

    其实思路很简单,利用MySQL现有的函数,然后进行加工处理,达到预期的结果.可以用到的MySQL函数为rand() ,以及 round() 函数. 具体为:select round(rand()*10 ...

  9. go生成随机数字验证码

    一行代码搞定 code := fmt.Sprintf("%06v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n( ...

随机推荐

  1. Laravel HTML导出 PDF ----- wkhtmltopdf Laravel-snappy

    需求:将复杂的展示页 (包含大量 echarts) 转换成 PDF供用户下载 1.下载安装wkhtmltoxpdf 选择自己的系统版本下载并安装 rpm -ivh wkhtmltox--.centos ...

  2. C#操作XML文档

    Note: '=> ' 表示返回值 参考资料:请点击这里! 1:创建Xml文档 2:写Xml文档(必须保证有根元素) XmlDocument Xd (实例化一个对象) CreateXmlDecl ...

  3. Python: 截屏

    最近项目中想实现截屏功能,使用的笔记本是高清屏,实际屏幕设置成了150%,所以在截屏的时候遇到个各种问题. 最开始使用PIL ImageGrab来截取屏幕,如果本来是100%的设置没有问题,能截取到全 ...

  4. Ubuntu 16.4系统下安装docker

    本文将介绍在ubuntu16.04系统下安装和升级docker.docker-compose.docker-machine. docker:有两个版本:docker-ce(社区版)和docker-ee ...

  5. 2019 蓝鲸人java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.蓝鲸人等公司offer,岗位是Java后端开发,因为发展原因最终选择去了蓝鲸人,入职一年时间了,也成为了面试官 ...

  6. vue+element打印页面功能

    项目中遇到了要打印页面的功能,我感之前使用的是一个第三方的插件,但是不兼容IE,后来发现直接调用window的API就可以了,MMP // 打印表单 printBtn() { window.print ...

  7. JDK安装—JAVA

    下载JDK 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 关于版本选择需要注意的问题: 如果eclip ...

  8. 适用于Centos6/7,vsftp自动安装脚本

    #!/bin/bash #vsftp install . /etc/rc.d/init.d/functions NUM=`rpm -q centos-release | awk -F '-' '{pr ...

  9. Linux搭建邮件服务器Postfix+Dovecot+MySQL+PHP

    用于搭建的服务器信息 阿里云 Centos 6.5 32位 安装过程1.安装Postfix 版本(2:2.6.6-8.el6) yum -y install postfix 安装完成还需要替换系统自带 ...

  10. Python从零开始——运算符