Python常用模块

Python常用模块

1.json模块和pickle模块

二者均用于序列化和反序列化,即将数据存入硬盘(文件)中

import json
#json最常用的是:json.dumps(存入)和json.loads(取出)
struct_data = {'name': 'json', 'age': 23, 'sex': 'female'}
print(struct_data, type(struct_data))		#{'name': 'json', 'age': 23, 'sex': 'female'} <class 'dict'>
data = json.dumps(struct_data)
print(data, type(data))		#{"name": "json", "age": 23, "sex": "female"} <class 'str'>
#无论数据是以什么样的方式创建的,只要满足json格式(字典中的所有引号都必须是双引号),都可以用json.load取出数据
data = json.loads(data)
print(data, type(data))		# {'name': 'json', 'age': 23, 'sex': 'male'} <class 'dict'>



#json序列号和反序列化
with open('xxxxjson序列化对象.json','w') as fw:
	fw.dumps(struct_data,fw)			#结果是会把struct_data存入xxxxjson序列化对象.json文件中
with open('xxxxjson反序列化对象.json','r') as fr:
	fr.loads(struct_data,fr)			#结果是会把struct_data从xxxxjson序列化对象.json文件中取出来

#json的序列化和反序列化可以每个json文件存储一个字典信息,这也是python中json的规范,不要用json存多个字典
#pickle模块和json的区别在于:(1)它支持存储所有python中的数据类型,包括函数等乱七八糟的东西;而json只支持list,dict,str,int或float,True/False,None(2)json兼容java等各种语言,pickle只用于python且不同的python版本也可能存在不兼容;(3)pickle是以二进制形式进行存储,因此在读取文件、存储时需要用'rb/wb'

import pickle

def f1():
    a=10
    b=5
    res=a+b
    return res

with open('test.pickle','wb') as fw:
    pickle.dump(f1,fw)
with open('test.pickle','rb') as fr:
    data=pickle.load(fr)

print(data())		#15

2.os模块

os用于文件操作,和操作系统交互
代码中写路径时都要加上一个r,表示原生的

区分一个事情:程序运行时找导入的模块时,导入模块的路径寻找是基于当前运行文件路径来找的,也就是说,自创的模块的路径一定要和运行程序在同一个目录下;而在区分绝对路径和相对路径时,和运行完全没有关系,相对路径相对的就是本文件(也就是写有相对路径的文件)

3.sys模块

(1)sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境;
(2)sys模块帮助python实现print()函数:sys.stdout()

4.hashlib模块

#整个hash流程如下:
#hash的特点:
#(1)同一个hash编码表,不管数据多长,生成的hash编码都是一样长
#(2)hash加密的数据一样,则hash结果一样
#(3)如果使用同一个哈希字符编码表,不断的hash,结果会累加
import hashlib

#生成一个哈希编码表
m=hashlib.md5()

#hash之前必须对数据进行编码(编码为二进制数据)
data1='13du'.encode()           #6a4212b1d8a7d9f58cd844820ca25b17
data2='gudhsihoj1ojij'.encode() #9eeaceac34ce9ee4791ba6f72a72b3ca

#hash过程
m.update(data1)
print(m.hexdigest())
#hash特征(3):结果累加
m.updata(data2)
print(m.hexdigest())		#dca1c5b7ce78700697b0763904f612d8,得到的这个编码是'13dugudhsihoj1ojij'的编码结果

hmac模块是hashlib模块的安全模式,hashlib模块不算很安全

5.logging模块

写日志的模块:了解了四项基本之后,一般是copy现有的日志文档,能看明白,能做细微改动即可;
记住一点,日志中字典的键一定不要去改,是定死的,只能去改值

6.numpy模块

(1)是python中的数值计算拓展库,存储和处理大型numpy数组;
(2)numpy库的作用:一、区别于list,比list更方便做数组的运算,比如数组的点乘等;二、计算速度快,甚至由于python内置的简单运算,使得其成为pandas、sklearn等模块的依赖包。高级的框架如TensorFlow、PyTorch等,其数组操作也和numpy非常相似;
numpy模块理解起来不难,只需要掌握它封装的数组运算函数即可,数据运算函数可以参照网络上的其他文章

相关推荐

  1. Python模块

    2024-04-24 17:34:13       8 阅读
  2. Python 模块json

    2024-04-24 17:34:13       39 阅读
  3. Python 模块re

    2024-04-24 17:34:13       40 阅读
  4. Python 模块pickle

    2024-04-24 17:34:13       30 阅读
  5. Python入门:模块—xml模块

    2024-04-24 17:34:13       26 阅读
  6. Python模块的使用

    2024-04-24 17:34:13       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-24 17:34:13       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-24 17:34:13       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-24 17:34:13       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-24 17:34:13       20 阅读

热门阅读

  1. 探索电子元器件商城:从原型到批量生产的选择

    2024-04-24 17:34:13       13 阅读
  2. python练习-水仙花数

    2024-04-24 17:34:13       14 阅读
  3. 总结失败经验,二战高分上岸!

    2024-04-24 17:34:13       10 阅读
  4. 1688跨境寻源通代采系统

    2024-04-24 17:34:13       23 阅读
  5. GlobalRouting - FastRoute布线算法运行流程(二)

    2024-04-24 17:34:13       12 阅读
  6. Rust常用特型之From和Into特型

    2024-04-24 17:34:13       11 阅读
  7. Vue.js(自定义指令)

    2024-04-24 17:34:13       12 阅读
  8. OpenCV 常见数据类型

    2024-04-24 17:34:13       13 阅读
  9. Qt | 键盘事件

    2024-04-24 17:34:13       12 阅读