• Python 自学基础(四)——time模块,random模块,sys模块,os模块,loggin模块,json模块,hashlib模块,configparser模块,pickle模块,正则


    时间模块

    import time
    
    print(time.time())  # 当前时间戳
    
    # time.sleep(1)  # 时间延迟1秒
    
    print(time.clock())  # CPU执行时间
    
    print(time.gmtime())  # 结构化时间
    
    print(time.localtime())  # 取得电脑时间
    
    print(time.strftime("%X", time.localtime()))
    
    print(time.ctime())
    
    print(time.mktime(time.localtime()))
    
    print("++++++++++++++++++++++++")
    
    import datetime
    
    print(datetime.datetime.now())

    随机数模块

    # 随机数模块 Random
    
    import random
    
    print(random.random())
    
    print(random.randint(1, 8))
    
    print(random.choice("hello"))
    
    print(random.choice([1, "123", [1, 2, 3]]))
    
    print(random.sample([1, 2, 3, 4, 5, 6], 2))
    
    print(random.randrange(0,10))

    sys模块

    import sys
    
    print(sys.argv)
    
    # 退出程序
    # sys.exit(0)
    
    # if sys.argv[1] == 'post':
    #     print('post')
    
    # 获得模块的搜索路径 初始化pythonpath的环境变量值
    print(sys.path)
    # 获取python解释器的版本信息
    print(sys.version)
    # 返回系统平台名称
    print(sys.platform)

    os模块

    import os
    
    # 获得当前文件路径
    print(os.getcwd())
    
    #  改变当前的工作目录 生成新文件选择地址
    os.chdir(r'C:python')
    
    print(os.getcwd())
    
    # 当前路径  .表示当前路径   .. 表示上层目录
    print(os.curdir)
    print(os.pardir)
    
    # 可生成多层递归目录 文件夹
    os.makedirs('abc\wjw\wjw2')
    
    # 删除文件夹 只删除空文件夹
    os.removedirs('abc\wjw\wjw2')
    
    # 生成一个文件夹
    os.mkdir('wjw')
    
    # 删除单级空目录
    os.rmdir('wjw')
    
    # 列出指定文件的所有文件和目录,包含隐藏文件
    print(os.listdir(r'F:联想第二次实训'))
    
    # 删除文件   不能删除文件夹
    os.remove('123.txt')
    
    # 重命名
    os.rename("456.txt", "741.txt")  # (oldname,newname)

    loggin模块

    # 日志模块
    
    import logging
    
    logging.debug('debug')
    logging.info('info')
    logging.warning('warning')  # 默认出现显示
    logging.error('error')
    logging.critical('critical')

    json模块

    # json模块
    # import json
    #
    # dic = {'name': 'wjw', 'age': '18', 'sex': 'nan'}
    #
    # data = json.dumps(dic)
    #
    # f = open('text', 'w')
    # f.write(data)
    # f.close()
    
    
    print("**********************************")
    
    # import json
    #
    #
    # def foo():
    #     print("ok")
    #
    #
    # data = json.dumps(foo)
    
    
    import json
    
    dic = {'name': 'wjw', 'age': '18', 'sex': 'nan'}
    
    # data = json.dumps(dic)
    
    f = open('text', 'w')
    
    json.dump(dic,f)
    
    f.close()

    hashlib 加密模块

    import hashlib
    
    # 加密模块
    
    m=hashlib.md5()
    
    m.update("abc".encode("utf8"))
    print(m.hexdigest())
    
    m.update('wjw'.encode("utf8"))
    print(m.hexdigest())

    configparser模块

    import configparser
    
    config = configparser.ConfigParser()
    
    config['wjw'] = {'name': 'wangjiawei', 'age': '18', 'sex': 'nan'}
    
    config['dizhi'] = {'name': 'shandongsheng', 'age': '256hao', 'sex': 'weifang'}
    
    with open("example.ini", 'w') as configfile:
        config.write(configfile)
    
    # 取文件内容
    print(config['wjw']['name'])
    # 判断文件中是否有wjw块
    print('dizhi' in config)
    
    
    print("***************")
    for i in config['wjw']:
        print(i)
    print("***************")
    
    # z={'name':'wjw','age':'18'}
    #
    # for i,y in z.items():
    #     print(i)
    #     print(y)

    pickle模块

    import pickle
    
    
    def foo():
        print("ok")
    
    
    data = pickle.dumps(foo)
    
    
    f = open('ptext', 'wb')
    f.write(data)
    f.close()

    print('+++++++++++++++++++')

     import pickle

    
    

      f = open('ptext', 'rb')
      data = f.read()
      data = pickle.loads(data)
      data()

    
    

      f.close()

    
    

      # 没内存指向,所以会报错

     

    正则表达式 模块

    # 正则表达式
    #  贪婪匹配  有多的不按照少的匹配
    
    import re
    
    # print(help(re))
    
    ret = re.findall('wjw', 'qwertyuiowjwdfghjklxcvbnmwertyui')
    print(ret)
    
    # . 通配符 代指任意一个字符,只匹配一个字符  不能代指换行符
    ret = re.findall('w.w', 'qwewww wwrtywkwuiowjwdfghjklxcvbnmwertyui')
    print(ret)
    
    # ^ 尖角符  只在开始匹配
    ret = re.findall('^w..w', 'wqywertywerwuiowjwdfghjklxcvbnmwertyui')
    print(ret)
    
    # $ 结束符  在结束匹配
    ret = re.findall('w..w$', 'wqywertywerwuiowjwdfghjklxcvbnmwertyweiw')
    print(ret)
    
    # * + ? {}
    # * 重复匹配  匹配前一个字符个数 0~多次
    ret = re.findall('.*', 'wqywwwwertywerwwuioywwwejwdfghiowjklxcvbnmwertyweiw')
    print(ret)
    
    #  + 重复 1到无穷次  不能为0次
    ret = re.findall('qy+', 'wqywertqyyyywerwuiowjwdfqyyghjklxcvbnmwertyweiw')
    print(ret)
    
    # ? 只匹配0次或者1次
    ret = re.findall('w?q', 'wqywertyweqrwuiowjwdfghjklxcvbnqmwwqertyweiw')
    print(ret)
    
    # {} 自定义匹配次数
    ret = re.findall('w{3}q', 'wqywertywerwwwwquiowjwdfghjklxcvbnmwertyweiw')
    print(ret)
    # {1,3}匹配一次到三次
    ret = re.findall('w{1,3}q', 'wqywertywerwwwwquiowjwdfghjklxcvbnmwertyweiw')
    print(ret)
    
    '''
      结论:
        * = {0,正无穷}
        + = {1,正无穷}
        ?= {0,1}
        
        推荐使用.*+?,减少使用{}
        
    '''
    
    print("****************************")
    
    # 【】 字符集  选择【】内的字符进行匹配
    ret = re.findall('w[c,d]q', 'wqywcqdertywdqerwwwwquiowjwdfghjklxcvbnmwertyweiw')
    print(ret)
    
    ret = re.findall('w[a-z]q', 'wqyweqertywerwwwwquiowjwdqfghjklxcvbnmwertyweiw')
    print(ret)
    
    #  斜杠
    '''
        反斜杠后加元字符去除特殊功能
        反斜杠后加普通字符实现特殊功能
        
    '''
    #  d 匹配任何一个十进制数字
    #  D 匹配任何非数字字符  大写取反
    #  s 匹配任何空白字符   大写取反
    #  w 匹配任何字母数字字符  大写取反
    ret = re.findall('w', 'wqyw')
    print(ret)
    ret = re.findall(r'v', 'wqv yw')
    print(ret)
    【版权声明】本博文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处!
    【重要说明】本文为本菜鸟的学习记录,论点和观点仅代表个人不代表此技术的真理,目的是学习和可能成为向别人分享的经验,因此有错误会虚心接受改正,但不代表此时博文无误!
    【博客园地址】JayveeWong: http://www.cnblogs.com/wjw1014
    【CSDN地址】JayveeWong: https://blog.csdn.net/weixin_42776111
    【Gitee地址】Jayvee:https://gitee.com/wjw1014
    【GitHub地址】Jayvee:https://github.com/wjw1014
  • 相关阅读:
    程序猿财务自由之路·规划篇
    如何教女友学编程?
    粤港澳大湾区9城最新购房政策一览
    一个漂亮妹子的美团面试经历,4轮2小时,成功拿到Offer
    在北京的互联网公司工作多少年可以买房?
    这六个 MySQL 死锁案例,能让你理解死锁的原因!
    阿里双11:「线上全链路压测」完整经验分享
    千亿级公司低代码平台的测试体系介绍
    Weblogic
    30分钟?不需要,轻松读懂IL
  • 原文地址:https://www.cnblogs.com/wjw1014/p/8656830.html
Copyright © 2020-2023  润新知