day16_python_1124
圈子
圈子是互相影响,走着走着就散了。
道不同不相为谋,与人的认知相关。
圈子如何正向引导?
圈子能决定你的人生走向。
圈子能决定你的格局。
01 昨日内容回顾
序列化模块
将一个数据结构 ----> 特殊的字符串(用于网络传输) 序列化过程
特殊的字符串 ------> 原数据结构 反序列化过程
json 所有语言通用,
python数据结构:int str bool list(tuple)dict
两对四个
1,json.dumps() json.loads() 网络传输 多个数据写入文件
2,json.dump() json.load() 单个数据写入文件
dic {1: 'alex'}
字典中的字符串全部都是双引号。
pickle : python语言之间的序列化模块 支持python所有数据类型 对象
两对四个
1,pickle.dumps() pickle.loads() 网络传输
2,pickle.dump() pickle.load() 数据(多个)写入文件
shelve
通过类似于字典的操作方式将数据写入文件。
hashlib : 加密模块,摘要算法 一系列加密算法的集合。
对字符串 -----> 数字的过程。
无论字符串多大 -----> 数字长度一样。
相同的字符串 转化的结果一样。
过程不可逆。
MD5 sha sha 数字越大 密文越长 耗时越长,安全系数越高。
ret = hashlib.md5()
ret.update('aelx'.encode('utf-8'))
ret.hexdigest()
加盐
ret = hashlib.md5('更复杂一些')
ret.update('aelx'.encode('utf-8'))
ret.hexdigest()
动态加盐
ret = hashlib.md5('更复杂一些')
ret.update('aelx'.encode('utf-8'))
ret.hexdigest()
import hashlib
username = 'alex'
password = '123'
salt = lambda x: x + 'sb'
ret = hashlib.md5(salt(username).encode('utf-8'))
ret.update(password.encode('utf-8'))
print(ret.hexdigest())
sha
1,密码的加密。
2,文件的校验。
os,sys, collections.
02 包
函数过多了,我可以分模块文件去管理函数,模块文件过多,要将模块文件分类,放在一个一个的文件夹中,
这个文件夹就叫做包,组织机构更加清晰合理。
包就是文件夹。
模块就是被别人去使用,包既然是一些模块文件的集合,也是被被人去调用。
文件:
1,被别人使用。
2,当作脚本自己使用。
执行文件运行时,会将执行文件的当前目录加载到sys.path列表中。
03 random 模块
04 shutil
# 02 昨日知识点回顾
# import hashlib
# username = 'alex'# password = '123'# salt = lambda x : x + 'sb'# ret = hashlib.md5(salt(username).encode('utf-8'))# ret.update(password.encode('utf-8'))# print(ret.hexdigest())
# 03 包
# 回顾 执行一个模块会发生三件事# 1,创建一个以模块名命名的名称空间。# 2,执行模块代码将模块里面的代码加载到模块名命名的名称空间的内存中。# 3,调用模块内的名字必须通过模块名. 的方式调用。
# 创建一个名为aaa的包# import aaa# 包也是模块,他是模块的集合体,所以引用包也会发生三件事情:# 1,创建一个以包名命名的名称空间。# 2,执行包中的__init__文件,将__init__里面的代码块加载到以包名明命的名称空间的内存中。# 3,调用包内的名字必须通过包名. 的方式调用。# print(aaa.x)# print(aaa.y)# aaa.func1()# print(aaa.m2)# print(aaa.m2.xx)# aaa.m2.func2()# print(aaa.bbb)
# 在aaa文件夹下创建名为bbb的包# 想要在此文件引用 bbb包的m3模块 怎么做?# 第一步 在此文件 import aaa# 第二步:在aaa 的 __init__ 添加 from aaa import bbb# 第三步:在bbb 的 __init__ 添加 from aaa.bbb import m3# 完成以上三步,那么我在此执行文件就可以引用bbb包的m3模块里面的名字。# aaa.bbb.m3.func3()
# 上面的需求满可以这么做:# from aaa.bbb import func3# m3.func3()
# 总结:# from a.b import c .的左边一定是个包,import 后面一定一个具体的名字# 包里面的__init__ 如果想要引用模块必须是 from ....import ... 不能直接 import# from a.b.c.d import e.f.g 错误# from a.b.c.d import e
# 04 相对导入绝对导入 ???
# 绝对导入: 以执行文件的sys.path为起始点开始导入,称之为绝对导入# 优点: 执行文件与被导入的模块中都可以使用# 缺点: 所有导入都是以sys.path为起始点,导入麻烦
# 相对导入: 参照当前所在文件的文件夹为起始开始查找,称之为相对导入# 符号: .代表当前所在文件的文件加,..代表上一级文件夹,...代表上一级的上一级文件夹# 优点: 导入更加简单# 缺点: 只能在导入包中的模块时才能使用
# from nb import m1# import nb# print(m1.f1())# nb.m1.f1()
# 05 random
import random# print(random.random()) # 大于0且小于1之间的小数# print(random.uniform(1,3)) # #大于1小于3的小数# print(random.randint(1,5)) # 大于等于1且小于等于5之间的整数# print(random.randrange(1,10,2)) # 10以内的奇数# print(random.choice(['alex','wusir','日天'])) # 多选一# print(random.sample(['alex','wusir','日天','太白'],2)) # 多选多# l1 = [1, 2, 3, 4, 5]# random.shuffle(l1)# print(l1)
# 题目# 生成随机验证码# 5个字符:0~9 数字, a~z的字母# '1qw34'# 选择1~9:# random.randrange(10) # 随机数字# 先从97 ~122 随机选择一个数字然后用chr表示字母# print(chr(122)) ## 二选任意一个字符
# import random# str_ = ''# for i in range(5):# num = str(random.randrange(10))# str1 =chr(random.randrange(97,122))#大写65-92# sum = random.choice([num,str1])# str_ += sum# print(str_)
# 随机字符串# def get_code():# code = ''# for i in range(5):# num = str(random.randrange(10))# s = chr(random.randint(97,122))# s_b = chr(random.randint(65,90))# single_s = random.choice([num, s, s_b])# code += single_s# return code
# print(get_code())
# 06 shutil
import shutil# 将文件内容拷贝到另一个文件中# shutil.copyfileobj(open('log1','r'),open('log2','w'))# 复制文件# shutil.copyfile('log1','log.bak')
# shutil.copytree('NB1','nbb',ignore=shutil.ignore_patterns('*.pyc', 'tmp*'))
# 打包?压缩?import shutilimport timeimport tarfile# 打包文件# shutil.make_archive('NB1%s' %time.strftime('%Y-%m-%d'),'gztar',root_dir='NB1')
# 解压# t = tarfile.open('NB12019-01-10.tar.gz','r')# t.extractall('ttt')# t.close()
day16_python_1124的更多相关文章
随机推荐
- 关于SLG的产品市场判断
SLG游戏是我自己主攻的未来产品方向,以下几个板块是我自己想着力挖掘的用户艺术: 1)经营能力(包括资源的规划,调配,成长性预期,以及投产比如何向用户选择向最大化) 2)统筹能力(包括自我资源的有效整 ...
- acm 2015北京网络赛 F Couple Trees 主席树+树链剖分
提交 题意:给了两棵树,他们的跟都是1,然后询问,u,v 表 示在第一棵树上在u点往根节点走 , 第二棵树在v点往根节点走,然后求他们能到达的最早的那个共同的点 解: 我们将第一棵树进行书链剖,然后第 ...
- 自定义Word颜色主题
外观 说明 看到这个黑色编辑器的界面,第一印象可能认为是Sublime.Atom. VScode或者其它markdown编辑器.其实仅仅是微软的Word经过了自定义主题. 选择清晰易于辨认的字体和深色 ...
- scanperiod 不生效
注意:要改 target 目录下的,真正运行时加载的 logback-spring.xml
- 使用shiro框架,解决跳转页面出现404的问题
shiro框架是一个安全框架,在进行登录的时候,如果没有配置路径,它会跳到shiro的默认配置的路径“/”下面,所以总是会出现404的错误,因为它的路径是保存在session中 所以需要我们把sess ...
- /* * 有五个学生,每个学生有3门课的成绩,从键盘输入以上数据 *(包括学生号,姓名,三门课成绩),计算出平均成绩, *将原有的数据和计算出的平均分数存放在磁盘文件"stud"中。 */
1.Student类:类中有五个变量,分别是学号,姓名,三门成绩 package test3; public class Student { private int num; private Stri ...
- 第九节 JS运动应用
多物体运动框架 多个物体同时运动 例子:多个Div,鼠标移入变宽 单定时器,存在问题 每个Div一个定时器 <!DOCTYPE html> <html lang="en&q ...
- 【BCFTOOLS】按样本拆分VCF文件
在对vcf的操作有这样三个软件: Vcftools:主要用于群体分析,文本处理的功能不是很强大,虽然这个软件也可以拆分样本,但是这种拆分不涉及文件的处理,只是保留在分析流程里. GATK .x:这个软 ...
- 生成id
package com.develop.web.util; import java.security.MessageDigest; import java.text.SimpleDateFormat; ...
- K8S学习笔记之kubernetes 日志架构
0x00 概述 应用程序和系统日志可以帮助我们了解集群内部的运行情况,日志对于我们调试问题和监视集群情况也是非常有用的.而且大部分的应用都会有日志记录,对于传统的应用大部分都会写入到本地的日志文件之中 ...