常用模块

eaoo eaoo     2022-12-28     529

关键词:

一、模块

什么是模块?模块是别人写好的功能放在一个文件里面,分为三种模块:

1.内置模块:安装python解释器的时候一起装上的

2.第三方模块、扩展模块:需要自己安装

3.自定义模块:你写的py文件

 

二、序列化模块

序列:列表,元组,字符串,bytes

什么叫序列化:把一个数据类型转换成字符串、bytes类型的过程就是序列化

为什么要把一个数据类型序列化?

‘name‘:‘路飞‘, ‘sex‘:‘male‘

当你需要把一个数据类型储存在文件中

当你需要把也给数据类型通过网络传输的时候及不安全的

 

1.json模块

import json
stu = ‘name‘:‘路飞‘, ‘gender‘:‘male‘
ret = json.dumps(stu)  # 序列化过程
print(stu, type(stu))
print(ret, type(ret))

# d = json.loads(ret)    # 反序列化的过程
# print(‘d-->‘,d,type(d))

# lst = [1,2,3,4,‘aaa‘,‘bbb‘]
# ret = json.dumps(lst)  # 序列化的过程
# print(lst,type(lst))
# print(ret,type(ret))
#
# d = json.loads(ret)    # 反序列化的过程
# print(‘d-->‘,d,type(d))

json的优点:

  所有的语言都通用

缺点:

  只支持非常少的数据类型

    在网络操作中,以及多语言环境中,要传递字典、数字、字符串、列表等简单的数据类型的时候使用。

  对数据类型的约束很苛刻:

    字典的key必须是字符串

    只支持:数字,字符串,列表,字典

    且所有的字符串都必须是用“”表示

    dumps(dic/list)   dic/list --> str  序列化方法
    loads(str)        str --> dic/list  反序列化方法
    dump(dic/lst,f)   dic/list --> 文件 序列化方法
    load(f)           文件 --> dic/list 反序列化方法 多次dump进入文件中的数据load会报错
    参数:ensure_ascii=False 希望序列化的中文能以中文的形式被现实并且写到文件中

 (1)方法dump load这两个方法,是完全和文件打交道。

# dic = ‘name‘:‘路飞‘,‘sex‘:‘male‘
# with open(‘json_file‘,‘w‘,encoding=‘utf-8‘) as f:
#     json.dump(dic,f,ensure_ascii=False)

# with open(‘json_file‘,‘r‘,encoding=‘utf-8‘) as f:
#     dic = json.load(f)
# print(dic,dic[‘name‘])

 (2)能不能多次向同一个文件中dump?可以,但是不能多次load

# dic = ‘name‘:‘路飞‘,‘sex‘:‘male‘
# with open(‘json_file‘,‘w‘,encoding=‘utf-8‘) as f:
#     json.dump(dic,f,ensure_ascii=False)
#     json.dump(dic,f,ensure_ascii=False)
#     json.dump(dic,f,ensure_ascii=False)
#     json.dump(dic,f,ensure_ascii=False)
#     json.dump(dic,f,ensure_ascii=False)

# with open(‘json_file‘,‘r‘,encoding=‘utf-8‘) as f:
#     dic = json.load(f)

 (3)有需求要向文件中写入多个字典

# def my_dumps(dic):
#     with open(‘json_file‘, ‘a‘, encoding=‘utf-8‘) as f:
#         dic_str = json.dumps(dic)
#         f.write(dic_str + ‘
‘)
# dic1 = ‘name‘:‘路飞‘,‘sex‘:‘male‘
# dic2 = ‘name‘:‘索隆‘,‘sex‘:‘male‘
# dic3 = ‘name‘:‘山治‘,‘sex‘:‘male‘
# my_dumps(dic1)
# my_dumps(dic2)
# my_dumps(dic3)
#
# with open(‘json_file‘,‘r‘,encoding=‘utf-8‘) as f:
#     for line in f:
#         dic = json.loads(line.strip())
#         print(dic[‘name‘])

 (4)json格式化

# import json
# data = ‘username‘:[‘李华‘,‘二愣子‘],‘sex‘:‘male‘,‘age‘:16
# json_dic2 = json.dumps(data,sort_keys=True,indent=4,separators=(‘,‘,‘:‘),ensure_ascii=False)
# print(json_dic2)

  

2.pickle

import pickle
# class Course():
#     def __init__(self,name,price):
#         self.name = name
#         self.price = price

# python = Course(‘python‘,29800)
# linux = Course(‘linux‘,25800)
# mysql = Course(‘mysql‘,18000)
# ret = pickle.dumps(python)
# print(ret)

# p = pickle.loads(ret)
# print(p.name,p.price)

# with open(‘pickle_file‘,‘wb‘) as f:
#     pickle.dump(python,f)

# with open(‘pickle_file‘,‘rb‘) as f:
#     course = pickle.load(f)
# print(course.name)

  

pickle的dump,load 操作文件必须以+b模式打开。

在load的时候,如果这个要被load的内容所在的类不在内存中,会报错。

pickle支持多次dump和多次load(需要异常处理)

 

pickle的多次dump

# def my_dump(course):
#     with open(‘pickle‘,‘ab‘) as f:
#         pickle.dump(course,f)
# my_dump(python)
# my_dump(linux)
# my_dump(mysql)

# with open(‘pickle‘,‘rb‘) as f:
#     while True:
#         try:
#             content = pickle.load(f)
#             print(content.name)
#         except EOFError:
#             break

  

常用模块

 阅读目录认识模块什么是模块模块的导入和使用常用模块一collections模块时间模块random模块os模块sys模块序列化模块re模块常用模块二hashlib模块configparse模块logging模块认识模块  返回顶部什么是模块什么是模块?  ... 查看详情

常用模块知识

阅读目录认识模块什么是模块模块的导入和使用常用模块一collections模块时间模块random模块os模块sys模块序列化模块re模块常用模块二hashlib模块configparse模块logging模块 返回顶部collections模块在内置数据类型(dict、list、set、tupl... 查看详情

第五篇:常用模块

第五篇:常用模块   PYTHON-模块time&datetime+目录规范PYTHON-模块-time&datetime-练习+目录规范PYTHON-模块sysosrandomshutilPYTHON-模块sysosrandomshutil-练习PYTHON-模块jsonpickleshelvexmlPYTHON-模块logginghashlibPY 查看详情

ansible5:常用模块

...具体可以参看官方页面。这里从官方分类的模块里选择最常用的一些模块进行介绍。一、ping模块 查看详情

saltstack常用的模块(代码片段)

SaltStack常用的模块文章目录SaltStack常用的模块SaltStack模块介绍SaltStack常用模块SaltStack常用模块之networknetwork.active_tcpnetwork.calc_netnetwork.connectnetwork.default_routenetwork.get_fqdnnetwork.get_hostnamenetwork.get_rou 查看详情

saltstack常用的模块(代码片段)

SaltStack常用的模块文章目录SaltStack常用的模块SaltStack模块介绍SaltStack常用模块SaltStack常用模块之networknetwork.active_tcpnetwork.calc_netnetwork.connectnetwork.default_routenetwork.get_fqdnnetwork.get_hostnamenetwork.get_rou 查看详情

模块划分常用架构

总结出来五个常用的模块交互架构,读者在进行项目设计时,可结合明德扬模块划分原则,参照“模块划分常用架构”进行模块划分。 §6.1直接交互架构直接交互不需要模块B反馈,模块A直接发送数据。一般应用于下游模块... 查看详情

常用模块

一time模块二random模块三os模块四sys模块五shutil模块六json&pickle模块七shelve模块八xml模块九configparser模块十hashlib模块十一logging模块十二re模块十三HTMLParser模块十四suprocess模块十五requests模块一time模块 在Python中,通常有这几... 查看详情

ansible5:常用模块

...具体可以参看官方页面。这里从官方分类的模块里选择最常用的一些模块进行介绍。一、ping模块测试主机是否是通的,用法很简单,不涉及参数: ansible test&nbs 查看详情

常用模块

阅读目录一time与datetime模块二random模块三os模块四sys模块五shutil模块六json&pickle模块七shelve模块八xml模块九configparser模块十hashlib模块十一suprocess模块十二logging模块十三re模块一time与datetime模块在Python中,通常有这几种方式来表... 查看详情

15-常用模块

目录:time,random,os,sys,shutil,json&pickle,shelve,xml,configparser,hashlib,suprocess,logging,re, 常用模块 常见模块的分类:内置模块自定义模块第三方模块 random随机数random.random():random.randint():random.randrange 查看详情

常用模块--

一time模块二random模块三os模块四sys模块五shutil模块六json&pickle模块七shelve模块八xml模块九configparser模块十hashlib模块十一suprocess模块十二logging模块十三re模块一time模块在Python中,通常有这几种方式来表示时间:时间戳(timestamp)... 查看详情

常用模块-datetime模块(代码片段)

...datetime是Python处理日期和时间的标准库。1、datetime模块中常用的类:类名功能说明date日期对象,常用的属性有year,month,daytime时间对象datetime日期时间对象,常用的属性有hour,minute,second2、datetime模块中包含的常量常量功能说明用法... 查看详情

ansibleplaybooks入门和编写规范ansibleplaybooks常用模块介绍常用模块集合

...服务器)  执行Playbooks  二、AnsiblePlaybooks常用模块介绍(模块在main.yml中使用)1.File模块:在目标主机创建文件 查看详情

ansibleplaybooks入门和编写规范ansibleplaybooks常用模块介绍常用模块集合

...服务器)  执行Playbooks  二、AnsiblePlaybooks常用模块介绍(模块在main.yml中使用)1.File模块:在目标主机创建文件 查看详情

常用模块二(configparser

常用模块二hashlib模块configparse模块logging模块 常用模块二 返回顶部hashlib模块Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数... 查看详情

ansible概述及常用命令模块(代码片段)

Ansible概述及常用命令模块一、Ansible概述特点二、部署ansible1.使用yum安装epel源和ansible2.配置主机清单3.配置密钥对验证三、ansible常用命令行模块1.command模块2.shell模块3.cron模块4.user模块5.group模块6.copy模块7.file模块8.hostname模块9.ping... 查看详情

ansible概述及常用命令模块(代码片段)

Ansible概述及常用命令模块一、Ansible概述特点二、部署ansible1.使用yum安装epel源和ansible2.配置主机清单3.配置密钥对验证三、ansible常用命令行模块1.command模块2.shell模块3.cron模块4.user模块5.group模块6.copy模块7.file模块8.hostname模块9.ping... 查看详情