zoukankan      html  css  js  c++  java
  • python 模块二(os,json,pickle)

    #################################总结#####################

    os常用

    os.makedirs('baby/安哥拉/特斯拉/黄晓明')
    os.mkdir("baby/安哥拉/特斯拉/lvb") # 上层文件夹必须存在
    os.rmdir("baby/baobao/baby/黄晓明") # 指定文件夹删除
    print(os.path.dirname(r"D:python_workspace_s18day23 内置模块02userinfo"))
    #获取当前的文件名 D:python_workspace_s18day23 内置模块02
    print(os.path.basename(r"D:python_workspace_s18day23 内置模块02userinfo"))
    #userinfo print(os.path.exists(r"D:python_workspace_s18day23 内置模块02") ) #查看当前目录是否存在 不存在为False
    ======重命名文件夹=====
    os.rename(r'temp1innerinner2','temp1innerhaiyan')
    =====删除文件夹和删除文件=========
    # 先删文件,
    os.remove(r'temp1innerfile')
    # 再删文件夹
    os.removedirs(r'temp1innerhaiyan') #删除一个文件夹的时候,如果上一级的文件夹是空的,就一并删除了。以此类推
    os.rmdir((r'temp1inner') )#只删除一个文件夹

    pickle(重点)
     可以将我们python中的任意数据类型转化成bytes并写入到文件中,同样也可以把文件中写好的bytes转换回我们python的数据,这个过程被称为反序列化 

    1. dumps() 把对象序列化成字节
    2. loads() 把字节反序列化成对象

    3. dump() 把对象序列化写入文件
    4. load() 把文件中的内容反序列化成对象


     json(重点中的重点)
    json将python中常见的字典, 列表转化成字符串,是目前后端数据交互使用频率最高的一种数据格式
    python: True, False, None
    json: true, false, null

    1. dumps() 把对象序列化成json
    2. loads() 把json反序列化成对象

    3. dump() 把对象序列化写入文件
    4. load() 把文件中的内容反序列化成对象

    使用json模块完成:

    1. 字典-> 字符串

    import json

    dic={'a'='hehe','b'='haha'}

    s=json.dumps(dic,ensure_ascii=False)#json处理中文问题

    print(s)#把对象序列化成json

    2. 字符串 -> 字典

    d=json.loads(

    '{"baby": null, "hxm": false, "syy": "史杨杨"}'

    )

    print(d)#把json反序列化成对象

    import sys
    # print(sys.platform)
    print(sys.path)  # 找模块的. 必须要记住. 模块的搜索路径
    
    import pickle
    #
    class Elephant:
        def __init__(self, name, weight, height):
            self.name = name
            self.weight = weight
            self.height = height
        def tiaoxi(self):
            print(f"{self.name}大象特别喜欢调戏人")
    
    e = Elephant("宝宝", "185T", "175")
    e.tiaoxi()
    
    # 序列化
    bs = pickle.dumps(e) # 把对象进行序列化
    print(bs)
    
    bs = b'x80x03c__main__
    Elephant
    qx00)x81qx01}qx02(Xx04x00x00x00nameqx03Xx06x00x00x00xe5xaex9dxe5xaex9dqx04Xx06x00x00x00weightqx05Xx04x00x00x00185Tqx06Xx06x00x00x00heightqx07Xx03x00x00x00175qx08ub.'
    # 发序列化
    dx = pickle.loads(bs) # 发序列化. 得到的是大象
    dx.tiaoxi()
    
    ###########################实例二####################
    e1 = Elephant("宝宝", "185T", "175")
    e2 = Elephant("宝贝", "120T", "120")
    
    lst = [e1, e2]
    
    pickle.dump(lst, open("大象", mode="wb"))
    
    读
    lst = pickle.load(open("大象", mode="rb"))
    for dx in lst:
        dx.tiaoxi()
    ######################json################
    import json
    
    dic = {"baby":None, "hxm":False, "syy":"史杨杨"}
    
    s = json.dumps(dic, ensure_ascii=False) # json处理中文的问题
    print(s+'json')#把对象序列化成json
    
    d = json.loads('{"baby": null, "hxm": false, "syy": "史杨杨"}')
    print(d['baby'])#把json反序列化成对象
    
    f = open("baby.json", mode="w", encoding="utf-8")#把对象序列化成json写入文件
    json.dump({"baby":None, "hxm":False, "syy":"史杨杨"}, f, ensure_ascii=False)
    ##把json反序列化成对象 从文件读取 f = open("baby.json", mode="r", encoding="utf-8") obj = json.load(f) print(obj)
    不怕大牛比自己牛,就怕大牛比自己更努力
  • 相关阅读:
    21.扩展
    20.嵌套类型
    19.类型转换
    18.错误处理
    17.可选链
    16.ARC
    15.析构函数
    14.构造函数
    13.继承
    12.下标
  • 原文地址:https://www.cnblogs.com/zaizai1573/p/10188122.html
Copyright © 2011-2022 走看看