day23 模块02
核能来袭--模块 2
1.nametuple()
2.os模块
3.sys模块(重点)
4.序列化 (四个函数)
5.pickle(重点)
6.json(重点中的重点)
1.nametuple()
命名元组 -->类似创建了一个类
from collections import nametuple
p=nametuple('person',['x','y','z']) # 效果与下面一样
p1=p(10,20,30)
class person: # 效果与上面的一样
def __init__(self,x,y,z):
self.x=x
self.y=y
self.z=z
2.os模块
主要是针对操作系统的 ,一般用来操作文件,
os.makedirs()可以一次性创建多级目录
os.makedirs('baby/haha/黄晓明') # 可以一次性创建多级目录
os.mkdir()创建文件,但是上层文件必须存在
os.removedirs() 删除目录级所有的空文件夹
os.removedirs('baby/哈哈/黄晓明') # 删除当前这个目录集中的所有空文件夹
os.rmdir()删除一个文件夹
os.rmdir('baby/哈哈/黄晓明') # 删除指定文件
os.path.dirname()获取到文件的文件夹
# os.path 与路径有关的内容
print(os.path.abspath('文件名')) #把相对路径改为绝对路径
print(os.path.split(r'文件路径'))
print(os.path.dirname(r'文件路径'))
print(os.path.basename(r'文件路径'))
print(os.path.exists(r'路径'))判断路径是否存在?
os.system('dir') 查看目录
3.sys模块(重点)
主要针对的是python解释器中的东西
sys.path(重点中的重点) 模块的查找路径
4.序列化 (四个函数)
把一个对象打散就叫做序列化,
把拍散的内容整合成对象,反序列化
5.pickle(重点)
import pickle
class Exlphant:
def __init__(self,name):
self.name=name def tiaoxi(self):
print(f'{self.name}大象特别喜欢调戏人') e=Explent('宝宝')
#把大象序列化
b=pickle.dumps(e)
#反序列化
bs=pickle.loads(b)
bs.tiaoxi()
1).dumps()把对象序列化成字节
2).loads()把字节反序列化成对象
# 我们写两个大象,我们把它打散写入文件中
e1=Elephant('宝宝')
e2=Elephant('宝贝')
f=open('大象',mode='wb')
pickle.dump(e1,f) # 没有S的这个方法是把对象打散写入到文件,序列化的内容不是给人看的
pickle.dump(e2,f) # 没有S的这个方法是把对象打散写入到文件,序列化的内容不是给人看的 # 方法1
#尝试读这个文件
f=open('大象',mode='rb')
while 1:
try:
e=pickle.load(f)
e.tiaoxi()
except Exception:
break # 方法2
# 写大象
e1=Elephant('宝宝')
e2=Elephant('宝贝')
lst=[e1,e2]
f=open('大象',mode='wb')
pickle.dump(lst,f)
#读大象
f1=open('大象',mode='rb')
s=pickle.load(f1)
for i in s:
i.tiaoxi()
3).dump()把对象序列化写入对象
4).load()把文件中的内容反序列化成对象
6.json(重点中的重点)
#json 其实和python差不多,只是有那么一点点的差距
dic={'name':'吴彦祖','age':20,'hight':178}
json.dumps(dic,ensure_ascii=False)# json处理中文的问题,在里面加一个ensure_ascii=False
#含义是否确认ascii码 f=open('baby.json',mode='w',encoding='utf-8')
json.dump(dic,f,ensure_ascii=False)
f1=open('baby.json',mode='r',encoding='utf-8')
print ( json.load(f1) )
json可以认为是python中的字典,有一点点的不一样
Python : True None False
json: true null false
json中也有pickle的四个函数
1.dumps()把对象序列化成json
2.loads() 把json反序列化成对象
3.dump() 把对象写入文件
4.load()把文件中的内容反序列化成对象
day23 模块02的更多相关文章
- Python模块02/序列化/os模块/sys模块/haslib加密/collections
Python模块02/序列化/os模块/sys模块/haslib加密/collections 内容大纲 1.序列化 2.os模块 3.sys模块 4.haslib加密 5.collections 1. ...
- day23 模块引入的一些说明
模块导入多次也是只导入一次 sys.modules里面会查看有没有被导入 导入后的模块内部的函数,变量就都可以拿来用了 给模块起别名,可以提高代码的兼容性 import time as t 但是被起别 ...
- day 020 常用模块02
主要内容: 什么是序列化 pickle shelve json configparser(模块) 一 序列化 我们在存储数据或者网络传输数据的时候,需要对我们的对象进行处理,把对象处理成方便存储和 传 ...
- day23 模块
1. 模块 1. 首先,我们先看个老生常谈的问题. 什么是模块. 模块就是一个包含了python定义和声 明的文件, 文件名就是模块的名字加上.py后缀. 换句话说我们目前写的所有的py文件都可以 看 ...
- python正则表达式与re模块-02
正则表达式 正则表达式与python的关系 # 正则表达式不是Python独有的,它是一门独立的技术,所有的编程语言都可以使用正则 # 但要在python中使用正则表达式,就必须依赖于python内置 ...
- 爬虫-selenium 模块-02
目录 selenium 模块 chromedriver 浏览器驱动下载与存放 PhantomJS 无界面浏览器 标签元素查找方法 xpath 格式用法 获取标签属性 等待元素被加载 元素交互操作 点击 ...
- python网络编程-socket套接字通信循环-粘包问题-struct模块-02
前置知识 不同计算机程序之间数据的传输 应用程序中的数据都是从程序所在计算机内存中读取的. 内存中的数据是从硬盘读取或者网络传输过来的 不同计算机程序数据传输需要经过七层协议物理连接介质才能到达目标程 ...
- day32 Pyhton 模块02复习 序列化
一. 什么是序列化 在我们存储数据或者网络传输数据的时候. 需要对我们的对象进行处理. 把对象处理成方便存储和传输的数据格式. 这个过程叫序列化 不同的序列化, 结果也不同. 但是目的是一样的. 都是 ...
- day013|python之模块02&目录01
1 from...import 1.1 概念 1.1.1 首次导入模块会发生的事 会触发模块的运行,产生一个模块的名称空间 将运行模块文件过程中产生的名字丢到模块额名称空间 在当前名称空间产生一个名字 ...
随机推荐
- maven项目依赖jar包报 java.lang.classnotfoundexception:Type com.xx.xx.xxx not present 的解决
今天在工作的时候遇到了这样一个奇葩的异常: java.lang.classnotfoundexception:Type com.ys.yahu.vo.file.MobileFileVo not pre ...
- Windows上结合使用Flume和Kafka
Win7+Flume1.8.0 + Kafka1.0.0 1.目标 ①使用Flume作为Kafka的Producer: ②使用Kafka作为Flume的Sink: 其实以上两点是同一个事情在Flume ...
- Codeforces 1006 F - Xor-Paths
F - Xor-Path 思路: 双向搜索dfs 如果普通的搜索复杂度是n 那么双向搜索复杂度是√n 代码: #include<bits/stdc++.h> using namespace ...
- Unity --- 纹理为什么要设置为2的N次方
1.图片的纹理像素在Unity3D中需要遵循2的N次方,由图形学决定的,只识别2的N次方. 非2的N次方的图片会转化为2的N次方图片(500 x 500 → 512 x 512),是因为转化过程比 ...
- python+selenium基础之XPATH定位(第一篇)
世界上最远的距离大概就是明明看到一个页面元素矗在那里,但是我却定位不到!! selenium定位元素的方法有很多种,像是通过id.name.class_name.tag_name.link_text等 ...
- 数据库:Mysql中“select ... for update”排他锁分析
Mysql InnoDB 排他锁 用法: select … for update; 例如:select * from goods where id = 1 for update; 排他锁的申请前提:没 ...
- Go语言学习之8 goroutine详解、定时器与单元测试
主要内容: 1.Goroutine2. Chanel3. 单元测试 1. Goroutine Go 协程(Goroutine)(轻量级的线程,开线程没有数量限制). (1)进程和线程 A. 进程是 ...
- [Spring] Aspect Oriented Programming with Spring | AOP | 切面 | 切点
使用Spring面向切面编程 1.介绍 AOP是OOP的补充,提供了另一种关于程序结构的思路. OOP的模块化的关键单位是 类 . AOP的则是aspect切面. AOP 将程序的逻辑分成独立的块(叫 ...
- Lasso linear model实例 | Proliferation index | 评估单细胞的增殖指数
背景:We developed a cell-cycle scoring approach that uses expression data to compute an index for ever ...
- 基于Struts2框架的文件下载 --- Struts2
一.Struts2指定类型文件的下载 1.最终功能实现的截图:(点击文件下载链接,下载文件 ) 2.核心代码 index.jsp: <%@ page language="java&qu ...