• 模块(二)os hashlib


    模块(二)os hashlib

    1.序列化模块

    1.1 json 将满足条件的数据结构转化成特殊的字符串,并且可以反序列化转回去
    # 两对方法
    # 1 dumps()  loads()  ## 多用于网络传输
    d = {"aa":1,"bb":2}
    import json
    s = json.dumps(d)  ## 转储  为str 
    # 想转回去 用 loads()
    d1 = json.loads(s)  ## 反序列化
    
    ## 第二对方法 dump() load() 只能用作文件转储 而且只能写一行
    d = {'aa':'噜啦啦',"bb":22}
    with open('j1.json',encoding='utf-8',mode='w') as f1:
        json.dump(d,f1,ensure_ascii=False)  ## 参数显示中文
    with open('j1.json',encoding='utf-8') as f2: 
        d2 = json.load(f2)
    print(d2)
    
    ## json 转多条数据到文件中时
    import json
    dic1 = {'name':'oldboy1'}
    dic2 = {'name':'oldboy2'}
    dic3 = {'name':'oldboy3'}
    l = [dic1,dic2,dic3]
    with open('j2.json',encoding='utf-8',mode='a') as f1:
        f1.write(json.dumps(l))
    
    with open('j2.json',encoding='utf-8') as f2:
        s2 = f2.read()
        l2 = json.loads(s2)
    

    1.2 pickle

    只限于python内使用

    dic1 = {'name':'oldboy1'}
    dic2 = {'name':'oldboy2'}
    dic3 = {'name':'oldboy3'}
    ​
    f = open('pick多数据',mode='wb')
    pickle.dump(dic1,f)
    pickle.dump(dic2,f)
    pickle.dump(dic3,f)
    f.close()
    ​
    f = open('pick多数据',mode='rb')
    while True:
        try:
            print(pickle.load(f))
        except EOFError:
            break
    f.close()
    
    ## 操作和json大致相同,只是默认转为bytes,所以文件操作的时候要用 二进制b 格式
    

    2 os 操作系统交互

    # 和路径相关
    ## 绝对路径
    # t = os.path.abspath('t1.py')
    # print(t)
    
    # 切割 成一个两项元组, 前面的所有路径+最后一个路径
    # t = os.path.split(__file__)
    # print(t)
    
    # ## 父级路径   split切割后的元组 索引 0
    # t = os.path.dirname(os.path.abspath('t1.py'))
    # print(t)
    
    
    
    ## __file__绝对路径
    # print(__file__)
    ## 获取文件名   split切割后的元组 索引 1
    # t = os.path.basename(__file__)
    # print(t)
    
    # 判断路径是否存在
    # t= os.path.exists('t1.py')
    # print(t)
    
    ## 判断是否是绝对路径
    # print(os.path.isabs(r'D:\_albertfighting'))
    # print(os.path.isabs(r'fightingday_09'))
    
    ## 判断是否是文件 或者是路径
    print (os.path.isfile('t1.py'))
    print(os.path.isdir('t1.py'))
    
    ## 拼接 路径
    print(os.path.join('a','b'))
    
    ## 时间和大小
    ## os.path.getatime(path)  返回path所指向的文件或者目录的最后访问时间  **
    ## os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间  **
    ## os.path.getsize(path) 返回path的大小 ***
    
    
    
    ## 文件操作
    ## 获取当前路径下 所有子路径和文件
    # os.listdir(path)
    ## 获取父路径
    # print(os.getcwd())
    
    ## 和文件夹相关
    # 创建多级路径
    # os.makedirs('d1/d2')
    # 删除多级路径  有文件的路径不删
    # os.removedirs('d1/d2')
    
    # 创建单级目录
    # os.mkdir('d3')
    
    # 删除单独路径
    # os.rmdir('d3')
    # 重命名
    # os.rename('d3','d4')
    
    # 删除文件
    # os.remove('d4/t.txt')
    
    

    3 sys 与解释器交互

    sys.path() 返回一个列表 模块的搜索路径 可以把要导入的模块路径 加到这个列表中
    

    4 hashlib 加密算法

    ##  正常加密
    import hashlib
    md = hashlib.md5()  # 实例化对象   这里的md5 可以换别的方法 
    md.update(bytes)   ## 加密
    ret = md.hexdigest()  ## 十六进制返回值
    print(ret)
    
    
    # 文件可以分批update
    # 文件的一致性校验
    md = hashlib.md5()  ## md5(bytes) 加盐相当于再加密一些
    with open(file,mode = 'rb') as f1:
    	while True:
            content = f.read(1024)
            if content:
                md.update(content)
            else:
                break
            
    
  • 相关阅读:
    smart client优势在那里? (草稿)
    MSN to expand free email storage to 250MB
    转移阵地了,新地址:http://spaces.msn.com/members/PuGong
    关于XMLHTTP object的OPEN方法
    创建第一个Windows Phone应用程序(一)
    Windows 平台下安装Cygwin后,sshd服务无法启动
    ASP.NET MVC3 Use Remote Validation
    ASP.NET MVC3中使用AllowHtml attribute
    HTML5 Canvas实现简单的俄罗斯方块
    创建第一个Windows Phone应用程序(二)
  • 原文地址:https://www.cnblogs.com/albert0823/p/11099659.html
Copyright © 2020-2023  润新知