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()把文件中的内容反序列化成对象

posted @ 2019-01-03 19:48  想扣篮的小矮子  阅读(113)  评论(0编辑  收藏  举报