zoukankan      html  css  js  c++  java
  • python模块(json、os、sys、random、string、time、hashlib)

    # json、os、sys、random、string、time、hashlib
    # json模块
    import json

    # json串就是字符串。
    d = {
    'car': {'color': 'red', 'price': 100, 'count': 50},
    '挨粪叉': {'color': 'red', 'price': 100, 'count': 50},
    '挨粪叉1': {'color': 'red', 'price': 100, 'count': 50},
    }

    res = json.dumps(d, indent=8, ensure_ascii=False) # dumps把list、字典转成json,indent多少缩进,ensure_ascii可以显示中文
    f1 = open('f1', 'w', encoding='utf-8')
    f1.write(res)

    f1 = open('f1', encoding='utf-8')
    res = f1.read()
    dict_res = json.loads(res) # loads把json串变成python的数据类型
    print(dict_res)

    f1 = open('f1', 'w', encoding='utf-8')
    json.dump(d, f1, ensure_ascii=False, indent=4) # dump自动帮你写入文件,第一个参数是数据,第二个是文件对象

    f1 = open('f1', encoding='utf-8')
    print(json.load(f1)) # load自动读文件

    # os模块
    import os

    print(os.getcwd()) # 取当前工作目录
    # print(os.chdir("..")) # 更改当前目录
    # print(os.getcwd())#取当前工作目录
    # print(os.curdir) # 当前目录,相对路径
    # print(os.pardir) # 父目录,相对路径
    print(os.mkdir("test1")) # 创建文件夹
    print(os.rmdir("test1")) # 只能删除空文件夹
    print(os.remove("../day4/5.png")) # 删除文件,不能删文件夹。
    print(os.listdir('c://')) # 列出一个目录下的所有文件
    os.rename("test", "test1") # 重命名
    # print(os.stat("笔记.txt"))#获取文件信息
    print(__file__) # __file__就是这个文件的绝对路径
    print(os.path.abspath(__file__)) # 获取绝对路径
    print(os.path.split("c:\usr\hehe\hehe.txt")) # 分割路径和文件名
    # print(os.path.dirname("c:\usr\hehe\hehe.txt")) # 获取父目录
    # print(os.path.basename("c:\usr\hehe\hehe.txt")) # 获取最后一级,如果是文件显示文件名,如果是目录显示目录名
    print(os.path.exists("c://test2")) # 目录/文件是否存在
    print(os.path.isfile(r"E: xzday2.zip")) # 判断是否是一个文件
    print(os.path.isdir(r"E: xzday2")) # 是否是一个文件夹
    name = 'a.sql'
    print(os.path.join("e", name)) # 拼接成一个路径
    # print(os.sep) # 当前操作系统的路径分隔符
    # print(os.linesep) # 当前操作系统的换行符
    # print(os.pathsep) # 当前系统的环境变量中每个路径的分隔符,linux是:,windows是;
    # print(os.environ) # 当前系统的环境变量
    # print(os.name) # 当前系统名称
    # c://java/jre;c://python
    # /usr/local:/root
    # os.system('dir') #用来执行操作系统命令,只能执行,获取不到结果
    # res = os.popen('ipconfig') #用来执行操作系统命令,并且获取到返回结果.read
    # print(res.read())

    # 常量,sys模块
    import sys

    print(sys.path) # 环境变量
    print(sys.platform) # 看当前系统是什么
    print(sys.version) # 看python的版本
    print(sys.exit('程序退出'))
    # quit('程序退出') # 退出程序
    # print('hahaha')
    # def fun(a):
    # pass
    # print(sys.argv) # 是获取运行python文件的时候 传入的参数

    # 随机数模块
    import random, string

    print(random.randint(1, 199)) # 1-199随机取一个整数
    print(string.digits) # 所有的数字0-9
    print(string.ascii_lowercase) # 所有的小写字母
    print(string.ascii_uppercase) # 所有的大写字母
    print(string.ascii_letters) # 所有的小写字母+所有的大写字母
    print(string.punctuation) # 所有的特殊字符
    s = random.choice(['ybq', 'mpp', 'zhx', 'df']) # 随机取一个元素
    res = random.sample(string.digits, 3) # 随机取N个元素
    print(''.join(res))
    res = random.uniform(1, 9) # 取随机小数0-9
    print(res)
    print(round(res, 2)) # 保留几位小数,如果四舍五入之后,最后一位小数是0,那么不显示
    print(random.random()) # 取0-1之间随机小数
    s1 = ['a', 'b', 'c', 'd', 'e']
    random.shuffle(s1) # 洗牌,打乱顺序,只能传list
    print(s1)

    # time时间模块
    import time

    time.sleep(2) # 等待几秒
    # 1、格式化好的时间 2018-1-14 16:42
    # 2、时间戳 是从unix元年到现在所有的秒数
    # 3、时间元组

    # 想时间戳和格式化好的时间互相转换的话,都要先转成时间元组,然后才能转
    print(int(time.time())) # 当前时间戳
    cur_time = time.strftime('%Y-%m-%d %H:%M:%S')
    # cur_time = time.strftime('%H%M%S') #取当前时间的格式化时间
    print(time.gmtime()) # 默认取标准时区的时间元组,如果传入了一个时间戳,那么就把这个时间戳转换成时间元组。
    print(time.timezone) # 和标准时间相差了几个小时
    print(time.gmtime(1516005840)) # 标准时区。
    cur_time1 = time.localtime(1516005840) # 默认取当前时区的时间元组,如果传入了一个时间戳,那么就把这个时间戳转换成时间元组。
    res = time.strftime('%Y-%m-%d %H:%M:%S', cur_time1)


    def timestampToStr(time_strmp, format='%Y%m%d%H%M%S'):
    # 时间戳转格式化好的时间
    cur_time = time.localtime(time_strmp) # 时间戳转成时间元组
    res = time.strftime(format, cur_time) # 再把时间元组转成格式化好的时间
    return res


    def strToTimestamp(time_st, format='%Y%m%d%H%M%S'):
    # 20181128113859
    # 这个函数是格式化好的时间,转时间戳的
    t = time.strptime(time_st, format) # 把格式化好的时间转成时间元组
    res = time.mktime(t) # 时间元组转成时间戳
    return res


    # 通过时间戳换算前后三天时间
    # 86400 * 3
    # 32342 - 86400 * 3


    # 加密模块
    import hashlib

    # md5加密,md5加密是不可逆的,不能被解密的。
    ybm_pwd = '1234567' #
    m = hashlib.md5() # md5加密
    bytes_ybq = ybm_pwd.encode() # 把字符串转成bytes类型
    m.update(bytes_ybq) # 加密,不能字符串,只能传bytes类型,二进制


    # print(m.hexdigest()) #加密后的结果
    def md5_password(st: str): # 限定了入参的类型,只能为string类型
    bytes_st = st.encode() # 转成二进制类型
    m = hashlib.md5(bytes_st) # 加密
    return m.hexdigest() # 返回加密后的结果


    # 其他加密方式
    # sha_256 =hashlib.sha256(bytes_ybq)
    # sha512 =hashlib.sha512(bytes_ybq)
    # print(sha512.hexdigest())
    import base64

    s2 = 'hahaha'
    byte_s = s2.encode() # 字符串变成二进制
    res1 = base64.b64encode(byte_s) # base64编码
    print(res1.decode()) # 把bytes转成字符串。
    jie_mi_res = base64.b64decode(res1.decode()) # base64编码
    print(jie_mi_res.decode())


  • 相关阅读:
    优秀大整数
    洛谷—— P3908 异或之和
    洛谷—— P1869 愚蠢的组合数
    洛谷—— P1680 奇怪的分组
    洛谷—— P1609 最小回文数
    Something I like
    数学相关
    新博客测试中~
    P3369 【模板】普通平衡树
    2017 11.6 NOIP模拟赛
  • 原文地址:https://www.cnblogs.com/zhufb/p/8289376.html
Copyright © 2011-2022 走看看