Python学习day014 模块1

今日内容


模块

序列化

序列化

将原本的字典、列表等内容转换成一个字符串的过程就叫做序列化

序列化的目的

  • 以某种存储形式使自定义对象持久化
  • 将对象从一个地方传递到另一个地方
  • 使程序更具维护性

序列化与反序列化

​ 序列化与反序列化

json

用于多种语言交互(编程语言通用数据)

内置模块 --> 直接导入使用

import json  # 导入json模块

Json模块提供了四种功能:dumps、dump、loads、load

使用json模块, 字典中的键必须由双引号括起来

json.dumps()

将字典对象转换为字符串返回

json.loads()

将字符串对象转换为字典返回

json.dump(dic, file_handle)

将字典转换为字符串写入文件

json.load(file_handle)

从文件中读取字符串转换为字典返回

应用
  • 通用数据
  • 持久化(文件操作相关)
    • dump
    • load

pickle

pickle只支持Python

import pickle  # 导入pickle模块

pickle模块提供了四种功能: dumps, loads, dump, load

pickle.dumps()

将对象转换为类二进制数据返回

pickle.loads()

将类二进制数据转换为字典返回

pickle.dump(dic, file_handle)

将字典转换为类二进制数据写入文件

_注意: file handle需要mode="wb"

pickle.load(file_handle)

将文件中的类二进制数据读取转换为字典返回

_注意: file handle需要mode="rb"

应用
  • 数据传输速度较json快
  • 只可应用于Python

shelve

文件+字典操作

import shelve  # 导入shelve模块
f = shelve.open("path\file", writeback=True)

类似字典操作

  • f[Key] = Value

注: writeback = True # 回写, 若写入失败则重新写入, 直到写入成功

小结

  • json最常使用, 前后端分离数据交互
  • pickle Python特有, 不常用
  • shelve 纯Python建议使用, 简单快捷

random模块

随机数

import random  # 导入random模块

random.random()

生成0 - 1之间的随机小数

random.randint(1, 10)

生成起始位置到终止位置的随机整数, 包含首尾

random.randrange(1, 21, 2)

生成起始位置到终止位置的加步进随机数(偶数或奇数, 取决于起始位置), 顾首不顾尾

random.choice(有序数据结构, k=num)

从有序数据结构中随机选择, k可指定个数, 有重复

random.sample(有序数据结构, k=num)

从有序数据结构中随机选择, k可指定个数, 无重复

random.shuffle(有序数据结构)

打乱顺序(洗牌)

应用

  • 验证码
  • ...

os模块

与当前操作系统交互

import os  # 导入os模块

目录相关

os.makedirs("app/a/a/a") * * *

递归创建目录

os.removedirs("app/a/b/c") * * *

递归删除目录, 目录下有内容则不处理

os.listdir() * * * *

查看目录下的内容

os.mkdir("app")

创建单个目录

os.rmdir("app")

删除单个目录, 目录非空则报错, 不处理

文件相关

os.remove() * * * * *

删除文件, 不能恢复

os.rename() * * * * *

修改文件的名字

操作系统相关

os.sep()

获取当前操作系统的路径符号

os.linesep()

获取当前操作系统的换行符

os.pathsep()

获取当前操作系统环境变量的分隔符

os.name()

获取操作系统信息

os.sysytem("dir")
os.popen("dir").read() * * *

在当前目录下下发操作系统指令

注: .read()在此获取信息, 可print

os.environ()

获取当前系统环境变量

路径相关 * * * * *

os.path.abspath() * * * *

获取文件的绝对路径

os.path.split()

将以上获取到的绝对路径分割为目录和文件

os.path.basename() * * *

获取文件的名字

os.path.dirname() * * *

获取文件的目录路径

os.path.exists() * *

判断文件是否存在, 返回True或False

os.path.isabs()

判断是否是绝对路径

os.path.join() * * * * *

路径拼接 软件开发规范 框架

os.stat().st_size * * *

获取文件大小 坑目录

os.path.getsize()

获取路径大小

os.getcwd()

获取工作路径

os.chdir() * * *

切换工作目录 路径切换

注: 绝对路径

节点号:

  • 一个点 . 当前目录
  • 两个点 .. 父级目录

sys模块

与Python解释器交互

import sys  # 导入sys模块

sys.argv() * * *

在cmd中执行, 可以将文件后的内容传递到文件中使用

terminal(cmd)终端使用

sys.argv[-1] 接收cmd方式调用 后边的参数会传递进来

后端开发 127.0.0.1本机ip

sys.path * * * * * *

Python解释器加载路径, 自定义模块添加到此

sys.version

获取解释器版本号

sys.platform

获取当前平台位数

hashlib模块

加密算法

判断一致性

加密后不可逆 不能解 (一年前暴力破解 -- 撞库) (MD5反推)

  1. 导入模块
  2. 创建一个加密方式
  3. 将要加密的内容编码成字节后加密
  4. 生成密文
import hashlib  # 导入hashlib模块

MD5

md5 = hashlib.md5("盐".encode("UTF-8"))
# 选择加密方式(可加盐)

md5.update("明文".encode("UTF-8"))
# 将明文转换为字节然后进行加密

md5.hexdigest()
# 生成密文

SHA1

方法同上

SHA256

方法同上

SHA512

方法同上

总结


  1. 序列化 * * * * * *
    1. json * * * *
    2. pickle
    3. shelve
  2. 随机数 * * * *
    1. random.random() * * * *
    2. random.randint()
    3. random.range()
    4. random.choice()
    5. random.sample()
    6. random.shuffer()
  3. os * * * * * *
    1. 目录相关 * * * *
    2. 文件相关 * * * *
    3. 操作系统相关 * * *
    4. 路径相关 * * * *
  4. sys * * * * *
    1. sys.argv() * * * * *
    2. sys.path() * * * *
    3. sys.version()
    4. sys.platform()
  5. hashlib * * * * *
    1. md5 * * * *
    2. sha1
    3. sha256 * * * *
    4. sha512

猜你喜欢

转载自www.cnblogs.com/dmcs95/p/10559452.html