一、dandom模块

  1. (0, 1) 小数:random.random()
  2. [1, 10] 整数:random.randint(1, 10)
  3. [1, 10) 整数:random.randrange(1, 10)
  4. (1, 10) 小数:random.uniform(1, 10)
  5. 单例集合随机选择1个:random.choice(item)
  6. 单例集合随机选择n个:random.sample(item, n)

  

  1. import random
  2. # print(random.random())
  3. # print(random.randint(1, 10))
  4. # print(random.randrange(1, 10))
  5. # print(random.uniform(1, 10))
  6.  
  7. print(random.choice('abc'))
  8. print(random.sample({1,2,3,4,5},3)) # 输出结果:以列表形式输出[1, 3, 4]
  9.  
  10. ls=[1,2,3,4,5]
  11. random.shuffle(ls)
  12. print(ls)
  1. 案例:设计验证码
    def random_code(count):
  2. code=''
  3. for i in range(count):
  4. num=random.choice([1,2,3])
  5. if num==1: # 自己设置 可以设置为数字
  6. code+=str(random.randint(0,9)) # 转成字符串,通过列表一个一个传然后在转成字符串输出
  7. elif num==2: # 可以设置为大写字母
  8. code+=chr(random.randint(65,90)) #通过ASCII码查找大写字母
  9. else:
  10. code += chr(random.randint(97, 122)) #通过ASCII码查找小写字母
  11. return code
  12. print(random_code(6))
  13.  
  14. # 简化版:
  15.  
  16. def random_code1(count):
  17. source='ABCDEFabcdef0123456789'
  18. code_list=random.sample(source,count)
  19. return ''.join(code_list)
  20. print(random_code1(6))
  1. 二、shutil模块
  1. import shutil
  2.  
  3. # 1、 基于路径的文件复制:
  4. shutil.copyfile('source_file', 'target_file')
  5.  
  6. # 2、 基于流的文件复制:
  7. with open('a.py', 'rb') as r, open('b.py', 'wb') as w:
  8. shutil.copyfileobj(r, w)
  9.  
  10. #3、 递归删除目标目录
  11. shutil.rmtree('target_folder')
  12.  
  13. # 4、文件移动
  14. shutil.move('a/a.py', 'b/a.py')# 可以从文件夹移动到另一个文件夹
  15. shutil.move('a/a.py', 'b/b.py') # 可以从文件夹移动到另一个文件夹并可以移动时重命名
  16.  
  17. # 5、文件夹压缩
  18. shutil.make_archive('file_name', 'format', 'archive_path')
  19. # 不写路径地址,会将当前根目录文件夹下所有目录压缩 gztar、zip两种压缩解压缩方式
  20.  
  21. # 6、文件夹解压
  22. shutil.unpack_archive('archive_path:解压的文件路径', 'file_name:解压到的文件名', 'format:解压方式')
  1. 三、shelve模块
  1. # shevle:可以用字典存取数据到文件的序列化模块
  2.  
  3. # 将序列化文件操作dump与load进行封装
  4. s_dic = shelve.open("target_file", writeback=True) # 注:writeback允许序列化的可变类型,可以直接修改值
  5. # 序列化::存
  6. s_dic['key1'] = 'value1'
  7. s_dic['key2'] = 'value2'
  8. # 反序列化:取
  9. print(s_dic['key1'])
  10. # 文件这样的释放
  11. s_dic.close()
  1. import shelve
  2.  
  3. # 将序列化文件操作dump与load进行封装
  4. s_dic=shelve.open('t.txt') # writeback=True 时操作的数据会同步写到文件中
  5.  
  6. # 序列化:存
  7. s_dic['key1']=[1,2,3,4,5]
  8. s_dic['key2']={'name':'abc','age':18}
  9. s_dic['key3']='abc'
  10. s_dic.close() # 文件释放
  11. #
  12. s_dic=shelve.open('t.txt',writeback=True)
  13. print(s_dic['key1'])
  14. s_dic['key1'][2]=30 # 将key1中的第三个数改为30
  15. print(s_dic['key1']) # 输出结果:[1, 2, 3, 4, 5] [1, 2, 30, 4, 5]
  16.  
  17. print(s_dic['key2'])
  18. s_dic['key2']['age']=300 # 将key2中的age数改为300
  19. print(s_dic['key2']) # 输出结果:{'name': 'abc', 'age': 18} {'name': 'abc', 'age': 300}
  20.  
  21. print(s_dic['key3'])
  22. s_dic['key3']='defg' # 将key3将abc改为defg的几个字符串
  23. print(s_dic['key3'])
  24. s_dic.close()
  25.  
  26. from shelve import DbfilenameShelf
  27. res=shelve.open('t.txt')
  28. print(res,type(res))
  29. #输出结果: shelve.DbfilenameShelf object at 0x00000247CD0EB320> <class 'shelve.DbfilenameShelf'>
  1.  
  1. 四、系统标准流(流入、流出、信息错误流)
  1. # 指:系统标准输入流|输出流|错误流
  2.  
  3. sys.stdout.write('msg')
  4. sys.stderr.write('msg')
  5. msg = sys.stdin.readline()
  6.  
  7. # print默认是对sys.stdout.write('msg') + sys.stdout.write('\n')的封装
  8. # 格式化结束符print:print('msg', end='')
  1. # 1、标准输出流
  2. import sys
  3. sys.stdout.write('') # 相当于print('msg',end=)
  4. sys.stdout.write('123\n') # 相当于==print()
  5.  
  6. print('abc',end='')
  7. # 输出结果123123
  8. # abc
  9. print('abc',end='')
  10. # 输出结果 123123
  11. # abcabc
  12.  
  13. # 2、 标准错误流
  14. sys.stderr.write('错误信息\n')
  15. sys.stderr.write('错误信息')
  16. sys.stderr.write('错误信息')
  17. #输出结果: 错误信息 (第一个换行了,所以到第二行才显示)
  18. # 错误信息错误信息
  19.  
  20. # 3、系统标准输入流
  21. res=sys.stdin.read(3)
  22. print(res) # 输出的结果:不管输入多少输出都被限制为3位
  23. res=sys.stdin.readline()
  24. print(res) # 输出的结果:输入多行就输出多行,如加上上面的限制,则输出的一行变为多行,每行个数为3
  1. 五、logging模块
  1. # logging 的日志可以分为debug()、info()、warning()、error()、critical() 5个级别
  2.  
  3. 1) root logging的基本使用:五个级别
  4. 2root logging的基本配置:logging.basicConfig()
  5. 3logging模块四个核心:Logger | Filter | Handler | Formater
  6. 4logging模块的配置与使用
  7. -- 配置文件:LOGGING_DIC = {}
  8. -- 加载配置文件:logging.config.dictConfig(LOGGING_DIC) => logging.getLogger('log_name')
  1. import logging
  2. import sys
  3.  
  4. handler1=logging.FileHandler("a.log",encoding='utf-8')
  5. handler2=logging.StreamHandler()
  6.  
  7. logging.basicConfig(
  8. level = logging.DEBUG,
  9. # stream=sys.stdout, # 将打印出的红字变成白色的字
  10. format="%(asctime)s -【%(level name)s】:%(massage)s",
  11. # filename='a.log',
  12. handlers=[handler1,handler2])
  13.  
  14. # 打印级别是人为规定的(现只能打印出最后三个。前两个级别比较低无法打印出来)
  15. logging.debug('debug')
  16. logging.info('info')
  17. # logging.warning('warning')
  18. # logging.error('error')
  19. # logging.fatal('fatal') # ==logging.critical('critical')
  1. import logging
  2.  
  3. # 规定输出源
  4. handler1 = logging.FileHandler("a.log", encoding="utf-8")
  5. handler2 = logging.StreamHandler()
  6.  
  7. # 规定输出格式
  8. fmt=logging.Formatter(
  9. fmt="%(asctime)s-%(name)s-%(levelname)s:%(message)s",
  10. datefmt="%m-%d %H:%M:%S %p")
  11.  
  12. o_log=logging.getLogger('abc')
  13. o_log.setLevel(10) # 给logger设置打印级别
  14. o_log.addHandler(handler1) #设置输出源,可以多个
  15. o_log.addHandler(handler2)
  16. handler1.setFormatter(fmt) # 设置输出格式
  17. o_log.warning('abc message')
  18.  
  19. o_log1=logging.getLogger('zxc')
  20. o_log1.setLevel(10)
  21. o_log1.addHandler(handler2)
  22. handler2.setFormatter(fmt)
  23. o_log1.warning('zxc message')
  1.  
  1.  

Python—day18 dandom、shutil、shelve、系统标准流、logging的更多相关文章

  1. python基础——14(shelve/shutil/random/logging模块/标准流)

    一.标准流 1.1.标准输入流 res = sys.stdin.read(3) 可以设置读取的字节数 print(res) res = sys.stdin.readline() print(res) ...

  2. Python 第五篇(下):系统标准模块(shutil、logging、shelve、configparser、subprocess、xml、yaml、自定义模块)

    目录: shutil logging模块 shelve configparser subprocess xml处理 yaml处理 自定义模块 一,系统标准模块: 1.shutil:是一种高层次的文件操 ...

  3. Python 第五篇(上):算法、自定义模块、系统标准模块(time 、datetime 、random 、OS 、sys 、hashlib 、json和pickle)

    一:算法回顾: 冒泡算法,也叫冒泡排序,其特点如下: 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应 ...

  4. python 全栈开发,Day48(标准文档流,块级元素和行内元素,浮动,margin的用法,文本属性和字体属性)

    昨日内容回顾 高级选择器: 后代选择 : div p 子代选择器 : div>p 并集选择器: div,p 交集选择器: div.active 属性选择器: [属性~='属性值'] 伪类选择器 ...

  5. python学习之算法、自定义模块、系统标准模块(上)

    算法.自定义模块.系统标准模块(time .datetime .random .OS .sys .hashlib .json和pickle) 一:算法回顾: 冒泡算法,也叫冒泡排序,其特点如下: 1. ...

  6. python基础系列教程——Python3.x标准模块库目录

    python基础系列教程——Python3.x标准模块库目录 文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata ...

  7. python ConfigParser、shutil、subprocess、ElementTree模块简解

    ConfigParser 模块 一.ConfigParser简介ConfigParser 是用来读取配置文件的包.配置文件的格式如下:中括号“[ ]”内包含的为section.section 下面为类 ...

  8. Python标准模块--logging

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...

  9. 数据分析:基于Python的自定义文件格式转换系统

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

随机推荐

  1. python基础知识练习题(一)

    1.执行Python脚本的两种方式:WIN+R,cmd,命令行窗口输入:python  进入python模式输入命令行直接执行命令:编写以.py结尾的文件,写入命令行,然后运行python.exe打开 ...

  2. git 的常用命令(未完待补充)

    一.初始化 git git init 这样会默认创建 master 分支 二.查看当前状态 git status  查看 git 的默认状态 三.创建一个文件,并把它添加到 git 仓库,使用 git ...

  3. 我的 FPGA 学习历程(13)—— 电子钟项目

    在秒表上一些其他模块就可以变成电子钟了,使用以下约定: 使用 KEY[0] 作为复位按键,复位后显示 00:00. 使用 KEY[1] 作为调整/暂停按键,暂停时电子钟调整的两个灯管保持 1Hz 的频 ...

  4. CentOS7终端的分辨率和字体修改

    本文转贴自https://blog.csdn.net/u010566813/article/details/40502819 一.修改分辨率 修改/boot/grub2/grub.cfg 添加如上,具 ...

  5. 如何修改SnipeIT的部分设置

    作为一款开源的资产管理系统,Snipe-IT非常的好用又结实,但是原始设置对中国用户有些不方便,部分汉化没有完成,需要直接修改代码,下面把常用的修改记录如下: 1.修改资产打印标签中的文本名称 找到  ...

  6. Ubuntu安装MySQL和Python库MySQLdb步骤

    一.安装MySQL服务器和客户端 执行以下命令: sudo apt-get install mysql-server-5.6 mysql-client-5.6 sudo apt-get install ...

  7. Mysql表的约束设计和关联关系设计

    https://blog.csdn.net/u012750578/article/details/15026677 Mysql表的约束设计和关联关系设计 ======================表 ...

  8. vue 实现图片上传与预览,以及清除图片

    vue写原生的上传图片并预览以及清除图片的效果,下面是demo,其中里面有vue获取input框value值的方法以及vue中函数之间的调用 <!DOCTYPE html> <htm ...

  9. Linux yun命令使用报错:File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:

    原文参考:https://www.cnblogs.com/caiji/p/7891923.html 使用yum更新perl源,报错 问题出现原因: yum包管理是使用python2.x写的,将pyth ...

  10. Spring 复习第一天

    一.Sping的优点 1.方便解耦,简化开发 ----Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理. 2.AOP编程的支持 ----Spring提供面向切面编程, ...