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

  • 相关阅读:
    01_垂直居中body中的应用
    C++基础知识易错点总结(2)
    辗转相除求最大公约数
    C++基础知识易错点总结(1)
    类对象的建立方式总结
    LeetCode(131)Palindrome Partitioning
    基本套接字编程(7) -- udp篇
    LeetCode(124) Binary Tree Maximum Path Sum
    LeetCode(115) Distinct Subsequences
    LeetCode(97) Interleaving String
  • 原文地址:https://www.cnblogs.com/zty1304368100/p/10186062.html
Copyright © 2020-2023  润新知