zoukankan      html  css  js  c++  java
  • day014 模块

    # 1.用于多种语言交互  编程语言通用数据

    # 内置的 不需要安装 直接导入使用

    import json # 导入一个json模块

    # dumps loads
    # dump load 有持久化的功能

    # dic = {'1':2}

    # s = json.dumps(dic) # 将字典对象转换成字符串
    # print(type(s))

    # di = '{"1":2}'
    # d = json.loads(di) # 将字符串转换成字典
    # print(d)
    # print(type(d))

    # json.dump({'1':4},open('a','w',encoding='utf-8'))

    # d = json.load(open('a','r',encoding='utf-8'))
    # d['1'] = 10
    # print(d)

    # json.dump(d,open('a','w',encoding='utf-8'))

    # d = json.load(open('a','r',encoding='utf-8'))
    # print(d)


    # 总结:
    # json.load() #参数文件句柄(r), 将文件中字符串转换成字典
    # json.dump() #对象(字典),文件句柄(w) 将字典转换字符串写入到文件中
    # json.dumps() #对象(字典) 将字典转换成字符串
    # json.loads() #字符串(字典) 将字符串转换成字典

    # import json
    # data = {'username':['李华','二愣子'],'sex':'male','age':16}
    # json_dic2 = json.dumps(data,sort_keys=True,indent=2,separators=(',',':'),ensure_ascii=False)
    # print(json_dic2)




    # 1.pickle 只支持python

    # dumps loads
    # dump load 持久化

    import pickle
    # print(pickle.dumps({'1':4})) #将对象转换成类似二进制的东西
    # print(pickle.loads(b'x80x03}qx00Xx01x00x00x001qx01Kx04s.'))
    # 将一个堆类似于二进制的东西转换成字典

    # pickle.dump({'2':4},open('b','wb'))
    # d = pickle.load(open('b','rb'))
    # print(d)

    # 总结:
    # josn,pickle 对比

    # loads json里的将字符串转换成字典 pickle 将字节转换成字典
    # dumps json里的将字典转换成字符串 pickle 将字典转换成字节
    # load json里的将文件中的字符串转换成字典 pickle 将文件中的字节转换成字典
    # dump json里的将字典转换字符串写入到文件中,pickle 将字典转换成字节写入到文件中

    # import json

    # ATM

    # d = json.load(open('a','r',encoding='utf-8'))
    # print(d)

    # d['money'] += 500

    # print(d)

    # d['money'] -= 100

    # import json
    # d = json.load(open('a','r',encoding='utf-8'))
    # print(d)




    # 序列化:
    # 1.文件 + 字典操作

    # import shelve
    # f = shelve.open('c',writeback=True) #创建文件 # writeback = True 回写

    # f['name'] = 'alex'
    #
    # f['age'] = 18
    #
    # print(f['name'],f['age'])

    # f['name'] = ['alex','wusir']
    #
    # print(f['name'])

    # print(f) # 这样是查看不了字典

    # for i in f:
    # print(i) #获取到所有的键

    # print(f.keys()) #keys也不行

    # for i in f:
    # print(f[i])

    # dump load 咱们不用写,自动帮咱们写的

    # f['name'] = {'2':4}

    # print(f['name'])

    # for i in f:
    # print(i)

    # 注意:以后你们会出现一个问题,咱们对字典的操作内容,有时候写不进去.在open

    # print(f['name'])

    # f['name'] = 'wusir'
    # print(f['name']) # {'2':4}

    # f['name'] = [1,2,34]

    # print(list(f.keys()))


    # json 最常用,前后端分离的时候数据交互 前后端分离 必回
    # pickle python 不怎么常用 河南方言 必了解
    # shelve 建议使用它,它简单 重庆,东北,容易学 必了解


    # 随机数
    import random # 内置的
    # print(random.random())
    # 0-1 之间随机小数

    # print(random.randint(1,10))
    # 起始位置,终止位置 两头都包含

    # print(random.randrange(1,21,2))
    # 起始位置,终止位置(不包含),步长

    # print(random.choice(['alex','wusir','eva_j']))
    # 从有序数据结构中随机选择一个

    # print(random.choices(['wusir','tialaing','taihei','ritian'],k=2))
    # 随机选择两个,但是有重复

    # print(random.sample(['wusir','tialaing','taihei','ritian'],k=2))
    # 随机选择两个,没有重复

    # li = [1,2,3,4,6]
    # random.shuffle(li) # 洗牌 打乱顺序
    # print(li)

    # 随机数 验证码 微信红包

    # print(chr(65),chr(90),chr(97),chr(122))

    # U = chr(random.randrange(65,91))
    # L = chr(random.randrange(97,123))
    # n1 = random.randrange(0,10)
    # n2 = random.randrange(0,10)
    # print(U, L,n1,n2)



    # 1.os模块和当前电脑操作系统做交互
    # os 内置模块

    # 文件夹:
    import os
    # os.makedirs('app/a/b/c') # 递归创建文件 ***
    # os.removedirs('app/a/b/c') # 递归删除文件, 当这个要删除的目录有文件就停止删除 ***
    # os.mkdir('app') # 创建单个目录 ***
    # os.rmdir('app') # 删除单个目录,目录如果有东西就报错不进行删除 ***
    # print(os.listdir('D:PyCharmProjects20day14')) ****
    # 查看某个目录下的内容

    # 文件:
    # os.remove() #删除这个文件,删除了就不能恢复了 *****
    # os.rename() #修改文件的名字 *****

    # 操作系统:
    # print(repr(os.sep)) #\
    # C:UsersluckyDocumentsTencent Files932023756FileRecv
    # 路径符号

    # print(repr(os.linesep))
    # 换行符

    # print(repr(os.pathsep))
    # 环境变量的分割

    # print(repr(os.name))

    # print(os.system('dir'))

    # print(os.popen('dir').read()) ***
    # 在写程序的时候可以下发一些操作系统的指令
    # 在linux系统上相当于发shell命令

    # print(os.environ) 查看 高级 -- 环境变量 -- path *

    # 路径:
    # print(os.path.abspath('b')) ****
    # 获取当前文件的绝对路径
    # print(os.path.split(r'D:PyCharmProjects20day14'))
    # 将这个文件的绝对路径分成目录和文件
    # print(os.path.basename(r'D:PyCharmProjects20day14')) **
    # 获取的是这个文件的名字
    # print(os.path.dirname(r'D:PyCharmProjects20day14')) ***
    # 获取的是这个文件的目录路径
    # print(os.path.exists(r'D:PyCharmProjects20day107 今日总结.py')) **
    # 判断这个文件是否存在
    # print(os.path.isabs(r'D:PyCharmProjects20day14'))
    # 判断是否是绝对路径

    # print(os.path.join('C:\','app','a','b')) *****
    # #路径拼接的 软件开发规范 框架

    # os.stat()

    # print(os.stat('b').st_size) #获取文件大小 ,坑目录 ***
    # print(os.getcwd()) # 获取工作路劲 ***

    # os.chdir('D:PyCharmProjects20day13') # 路劲切换 *
    # print(os.getcwd())


    # 1. sys模块 python解释器交互的

    # sys 内置的

    import sys

    # print(sys.argv[-1]) ***
    # 接受cmd方式调用 后边的参数会传递进来
    # linux系统上 -- 后端开发 -- 数据库(文件) ip + 端口

    # print(sys.path) # 添加自定义模块路劲的 # ******

    # print(sys.version) # 版本 获取解释的版本号

    # sys.platform = 'win1988'

    # print(sys.platform) #获取当前操作系统的平台位数 # 不是定死的

    # print(sys.exit(1))

    # 1.# 加密算法
    # 作用: 当做密码
    # 判断一致性
    # 2.加密后不可逆 不能解 (一年前暴力破解 -- 撞库)
    # (现在md5 反推)

    # 3.sha1,sha256,sha512

    # alex3714
    # **********

    # import hashlib
    # md5 = hashlib.md5('盐'.encode('utf-8')) # 选择加密方式 加盐
    # md5.update('alex3714'.encode('utf-8')) # 将明文转成字节然后进行加密
    # print(md5.hexdigest()) # 生成密文

    # md5 = hashlib.md5() # 选择加密方式 加盐
    # md5.update('alex3714'.encode('utf-8')) # 将明文转成字节然后进行加密
    # print(md5.hexdigest()) # 生成密文

    # sha512 = hashlib.sha512()
    # sha512.update('alex3714'.encode('utf-8'))
    # print(sha512.hexdigest())


    # # sha512
    # 优点:
    # 安全
    # 缺点:
    # 慢
    #
    # # md5
    # 优点:
    # 安全,快
    # 缺点:
    # 容易破解


    # user,pwd = input('user|pwd:').strip().split('|')
    # import hashlib
    #
    # md5 = hashlib.md5(str(user).encode('utf-8'))
    # md5.update(pwd.encode('utf-8'))
    # print(md5.hexdigest())

    # md5,sha1,sha256,sha512



  • 相关阅读:
    ubuntu怎么安装下载工具uget+aria2 for firefox
    #pragma once
    opencv3在CMakeLists.txt中的调用问题
    opencv之Mat数据类型
    windows10下笔记本电脑外接显示器设置
    ubuntu16.04下笔记本电脑扩展双屏安装过程
    【问题收录】Ubuntu14.04连接两个双显示器失败的解决方案
    获取jsapi_ticket
    微信公众号中高德地图显示路线开发
    微信公众号中高德地图显示路线
  • 原文地址:https://www.cnblogs.com/qj696/p/10561131.html
Copyright © 2011-2022 走看看