一、random 模块:随机数

1、part1

import random

1、[1,10]整数 random randint(1,10)
print(random.randint(1, 10)) # 随机产生[1,10]中的一个数 2、(0,1)小数 random.random()
print(random.random()) 3、[1,10)整数 random.randrange(1,10)
print(random.randrange(1, 10)) 4、(1,10)小数 random.uniform(1,10)
print(random.uniform(1,10)) print(random.choice([1,2,3])) # 单例集合随机选择1个
print(random.sample([1,2,3,4,5,6],2)) # 单例集合随机选择n个 5、洗牌random.shuffle
ls=[0,1,2,3,4,5,6]
random.shuffle(ls)
print(ls)

2、案例

产生指定位数的验证码

import random
def random_code(count):
code =''
for i in range(count):
num = random.randint(,)
if num == :
tag = str(random.randint(,))
elif num == :
tag = chr(random.randint(,))
else :
tag = chr(random.randint(,))
code += tag return code
print(random_code())

二、shutil 模块:可以操作权限的处理文件模块

import shutil

、基于路径的文件复制
shutil.copyfile(r'D:\SH-fullstack-s3\day18\part1\b.py','bb') 、基于流的文件复制
with open('c.py','rb') as r ,open('d.py','wb') as w:
shutil.copyfileobj(r,w) 、递归删除目标目录
shutil.rmtree('a') 、文件移动
shutil.move('d.py','dd.py') 文件夹压缩
shutil.make_archive('aaaa','zip',r'D:\SH-fullstack-s3\day18\part1') 、文件夹解压
shutil.unpack_archive(r'D:\SH-fullstack-s3\day18\part1\aaaa.zip','aaaaaa','zip')

三、shevle 模块:可以用字典存取数据到文件的序列化模块

import shelve

将序列化文件操作dump与load进行封装
s_dic = shelve.open("target.txt") # 注:writeback=True操作数据会同步写到文件

序列化::存
s_dic['key1'] = [, , , , ]
s_dic['key2'] = {'name': 'Bob', 'age': }
s_dic['key3'] = 'abc'

文件释放
s_dic.close() s_dic = shelve.open("target.txt", writeback=True)
print(s_dic['key1'])
s_dic['key1'][] =
print(s_dic['key1']) print(s_dic['key2'])
s_dic['key2']['age'] =
print(s_dic['key2']) print(s_dic['key3'])
s_dic['key3'] = 'def'
print(s_dic['key3'])
s_dic.close()

四、三流:系统标准输入流 | 输出流 | 错误流

import sys

、系统标准输入流
sys.stdout.write('') # print('msg',end='')
sys.stdout.write('') # == print()
结果为 sys.stdout.write('123\n')
sys.stdout.write('')
结果为
、系统标准输出流
res = sys.stdin.read()
print(res)
res = sys.stdin.readline()
print(res) 、系统标准错误流 sys.stderr.write('错误信息\n')
sys.stderr.write('错误信息')
sys.stderr.write('错误信息') 结果为
错误信息
错误信息错误信息

五、logging

1、logging模块是python提供的用于记录日志的模块

2、日志级别:五个级别,从高到低

info:常规信息  10

debug:调试信息  20

warning:警告信息  30

error:错误信息  40

cretical:严重错误  50

3、logging模块的四个核心角色

Logger:日志生长器,产生日志

Fitler:日志过滤器,过滤日志

Handler:日志处理器,对日志进行格式化,并输出到指定位置(控制台或文件)

Formater:处理日志的格式

4、通过字典配置日志模块(重点)

六、xlrd与xlwt

1、xlrd

read.xslx表格:

import xlrd
import xlwt
import os class ExcelRead(object):
def __init__(self, excel_name, sheet_name):
self.path = os.path.join(os.path.join(os.path.dirname(__file__), "upload"), excel_name)
self.data = xlrd.open_workbook(self.path) # 打开指定的excel文件
self.table = self.data.sheet_by_name(sheet_name) # 找到指定的sheet页
self.rows = self.table.nrows # 获取总行数
self.cols = self.table.ncols # 获取总列数 def data_dict(self):
if self.rows <=1:
print('总行数小于等于1', end='')
print(self.path)
return False
else:
keys = self.table.row_values(0) # 将列表的第一行设置为字典的key值
data = []
for i in range(1, self.rows):
dict = {}
for j in range(0, self.cols):
dict[keys[j]] = self.table.row_values(i)[j]
data.append(dict)
return data if __name__ == '__main__':
start = ExcelRead('xlrd.xlsx', u'read')
data = start.data_dict() for i in range(len(data)):
print(data[i])

结果为:

2、xlwt

excel_path = os.path.join(os.path.join(os.path.dirname(__file__), "upload"), 'xlwt.xlsx')

class ExcelWrite(object):
def __init__(self):
self.excel = xlwt.Workbook() # 创建一个工作簿
self.sheet = self.excel.add_sheet('Sheet4') # 创建一个工作表 # 写入单个值
def write_value(self, cell, value):
'''
- cell: 传入一个单元格坐标参数,例如:cell=(0,0),表示修改第一行第一列
'''
self.sheet.write(*cell, value)
# (覆盖写入)要先用remove(),移动到指定路径,不然第二次在同一个路径保存会报错
os.remove(excel_path)
self.excel.save(excel_path) # 写入多个值
def write_values(self, cells, values):
'''
- cells: 传入一个单元格坐标参数的list,
- values: 传入一个修改值的list,
例如:cells = [(0, 0), (0, 1)],values = ('a', 'b')
表示将列表第一行第一列和第一行第二列,分别修改为 a 和 b
'''
# 判断坐标参数和写入值的数量是否相等
if len(cells) == len(values):
for i in range(len(values)):
self.write_value(cells[i], values[i])
else:
print("传参错误,单元格:%i个,写入值:%i个" % (len(cells), len(values))) if __name__ == '__main__':
start = ExcelWrite()
cells1 = [(0, 0), (0, 1)]
values1 = ('飞猪', '哈哈')
start.write_values(cells1, values1)

结果为:

day18 十八、random、shutil、shevle、logging的更多相关文章

  1. 18 常用模块 random shutil shevle logging sys.stdin/out/err

    random:随机数 (0, 1) 小数:random.random() ***[1, 10] 整数:random.randint(1, 10) *****[1, 10) 整数:random.rand ...

  2. random shutil shevle xml

    random 模块 import random print(random.random())#(0,1)----float 大于0且小于1之间的小数 print(random.randint(1,3) ...

  3. Python之路(第十八篇)shutil 模块、zipfile模块、configparser模块

    一.shutil 模块 1.shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中,需要打开文件 import shutil shutil.co ...

  4. python 基础(十八)--shutil模块

    shutil模块 shutil.copyfileobj(src,dst):只拷贝文件内容,需要open文件:目标文件不存在时创建,存在时覆盖 shutil.copyfileobj(open('old. ...

  5. 十八. Python基础(18)常用模块

    十八. Python基础(18)常用模块 1 ● 常用模块及其用途 collections模块: 一些扩展的数据类型→Counter, deque, defaultdict, namedtuple, ...

  6. 201771010126 王燕《面向对象程序设计(java)》第十八周学习总结

    实验十八  总复习 实验时间 2018-12-30 1.实验目的与要求 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设计特点: (3) 综合掌握java GUI 程序设 ...

  7. 马昕璐 201771010118《面向对象程序设计(java)》第十八周学习总结

    实验十八  总复习 实验时间 2018-12-30 1.实验目的与要求 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设计特点: (3) 综合掌握java GUI 程序设 ...

  8. 刘志梅 201771010115 《面向对象程序设计(java)》 第十八周学习总结

    实验十八 总复习 实验时间 2018-12-30 1.实验理论知识 (1)第一个关键词:public称为访问修饰符,用于控制程序的其他部分对代码的访问级别. 第二个关键词:class表明java程序中 ...

  9. 了解Kubernetes主体架构(二十八)

    前言 Kubernetes的教程一直在编写,目前已经初步完成了以下内容: 1)基础理论 2)使用Minikube部署本地Kubernetes集群 3)使用Kubeadm创建集群 接下来还会逐步完善本教 ...

随机推荐

  1. 【技能意志矩阵-skill will matrix】工作中究竟是个人能力更重要,还是我们的积极性更能提高我们的业绩?

    工作中究竟是个人能力更重要,还是我们的积极性更能提高我们的业绩? 我们可以通过建立“个人能力(即技能)”和“积极性(即意志)”的矩阵(skill will matrix),找到自己的象限,并根据指导意 ...

  2. sqlbulkcopy 多表批量保存

    /// <summary> /// 批量保存多表 /// </summary> /// <param name="dt1"></param ...

  3. PHPStrom激活方法

    直接用浏览器打开 http://idea.lanyus.com/ 点击页面中的“获得注册码”, 然后在注册时切换至Activation Code选项,输入获得的注册码一长串字符串 如果提示红字体信息, ...

  4. 爬虫对自己服务器 CPU,内存和网速的影响

    今天无事写一遍关于爬虫对计算机的影响,主要是给小白同学普及一下爬虫的基础知识. 在我们写爬虫的时候,首先会想到开多线程,如果使用的语言是Python,很不幸,因为Python存在  GIL,在任何时候 ...

  5. 【原创 深度学习与TensorFlow 动手实践系列 - 3】第三课:卷积神经网络 - 基础篇

    [原创 深度学习与TensorFlow 动手实践系列 - 3]第三课:卷积神经网络 - 基础篇 提纲: 1. 链式反向梯度传到 2. 卷积神经网络 - 卷积层 3. 卷积神经网络 - 功能层 4. 实 ...

  6. 为Sublime Text 设置全局启动快捷键

    为Sublime Text创建快捷方式.找到Sublime Text安装目录中的“sublime_text.exe”文件,然后右击创建快捷方式,如下图:  为Sublime Tex设置全局快捷键.将上 ...

  7. 微信redirect_uri域名与后台配置不一致,错误代码10003

    现象 做好了微信公众号扫描登录后,很稳定的运行,后来增加了微信开放平台,结果偶尔就出现了这个redirect_uri错误.然后重启服务器后,又正常. 探查 网上的说法都是网页授权配置的问题,检查微信公 ...

  8. 【iCore4 双核心板_uC/OS-II】例程十一:内存管理

    一.实验说明: 应用程序在运行中为了某种特殊需要,经常需要临时获得一些内存空间.而作为比较完善的操作系统uC/OS-II,也具有动态分配内存的能力. uC/OS-II对内存进行两级管理:把连续内存分成 ...

  9. 微软Windows10LTSC2019官方三月更新版镜像

    何谓 Windows 10 LTSC?其实,LTSC 是 Long Term Support Channel 的缩写,翻译一下就是“长期服务分支”. Windows 10 LTSC 实际上就是微软官方 ...

  10. mysql binlog日志自动清理及手动删除

    说明:当开启mysql数据库主从时,会产生大量如mysql-bin.00000* log的文件,这会大量耗费您的硬盘空间.mysql-bin.000001mysql-bin.000002mysql-b ...