• python 正则 时间


     
    解耦 = 解除耦合
    未解除耦合例子
     
    解除耦合例子
     
     
     
     
    问 : 帐号信息在db里为什么要分成一个一个的文件,而不把所有的帐号都放在一个文件里?
    答 : 由于A用户正在操作文件,B用户若也操作文件的话,B读到的实际上是个旧文件,当B又保存的时候,就没有把A已经更新的文件保存下去
     
    问  : 如何对登录状态进行校验
    哒: 设置个全局变量字典保存用户的个人信息,登录状态,登录成功后可以把信息返回给这个内存变量,给状态置位。
     
     
    1.定义:
    模块:本质就是.py结尾的python文件,用来从逻辑上组织python代码(变量、函数、类、逻辑 : 模块的本质就是实现一个功能)
     
    2.导入方法
    import moduel_name
    import moduel_name1,modeul_name2
    from moduel_name imoprt * (不建议这么使用)
    因为当A和B存在相同的function名的时候,会有冲突
    from module_alex import logger as log 因为方法使用了别名,所以就不会出现冲突的情况
     
    3.import本质
    本质就是把python文件解释一遍
    包 :用来从逻辑上组织模块,本质就是一个目录,带一个__init__.py的文件(必须带)
    导入包的本质就是执行该包下的__init__.py文件
    需要先在sys这个list中把绝对路径加进去
    获取绝对路径的话用 os.path.dirname(os.path.abspath(__file__))
     
    import os, sys
     
    #文件的路径
    fliename = os.path.abspath(__file__)
    print (fliename)
     
    #文件的目录
    dir_name = os.path.dirname(fliename)
    print (dir_name)
     
    #文件目录的目录
    top_dir_name = os.path.dirname(dir_name)
    print (top_dir_name)
     
    #添加环境变量
    sys.path.append(top_dir_name)
     
    C:UserszouyiPycharmProjectspython_classpythonDay_05studystudy1.py
    C:UserszouyiPycharmProjectspython_classpythonDay_05study
    C:UserszouyiPycharmProjectspython_classpythonDay_05
     
    4.导入优化
    就是通过from直接引用
    from . import test as ffff
     
     
    5.模块的分类
    a : 标准库
    b : 开源模块
    c : 自定义模块
     
    标准库
    1. time 和 datetime
    import time
    time.localtime #本地当前时间是个元祖
     
    import time
    import datetime
     
    #标准时间
    print (time.gmtime())
     
    #localtime
    print (time.localtime())
    #time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=8, tm_wday=3, tm_yday=1, tm_isdst=0)
     
    #取时间年份
    s = time.localtime().tm_year
    print (s)
     
    time.struct_time(tm_year=2016, tm_mon=8, tm_mday=20, tm_hour=14, tm_min=35, tm_sec=15, tm_wday=5, tm_yday=233, tm_isdst=0)
     
    2016
     
    #元祖转换成时间戳
    time.mktime(s)
    12312313123
     
    #格式化时间
    date_value = time.strftime("%Y-%m-%d %H:%M:%S")
    print (date_value)
    2016-08-20 14:40:54
     
    datetime模块
     
    import  datetime
     
    #获取当前的时间
    print (datetime.datetime.now())
     
    #获取三天后的时间
    print (datetime.datetime.now()+datetime.timedelta(3))

    2016-08-20 15:07:25.001953
    2016-08-23 15:07:25.001953
     
    #获取3小时后的时间
    print (datetime.datetime.now()+datetime.timedelta(hours = 3))
     
    %a    本地(locale)简化星期名称    
    %A    本地完整星期名称    
    %b    本地简化月份名称    
    %B    本地完整月份名称    
    %c    本地相应的日期和时间表示    
    %d    一个月中的第几天(01 - 31)    
    %H    一天中的第几个小时(24小时制,00 - 23)    
    %I    第几个小时(12小时制,01 - 12)    
    %j    一年中的第几天(001 - 366)    
    %m    月份(01 - 12)    
    %M    分钟数(00 - 59)    
    %p    本地am或者pm的相应符    一    
    %S    秒(01 - 61)    二    
    %U    一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。    三    
    %w    一个星期中的第几天(0 - 60是星期天)    三    
    %W    和%U基本相同,不同的是%W以星期一为一个星期的开始。    
    %x    本地相应日期    
    %X    本地相应时间    
    %y    去掉世纪的年份(00 - 99)    
    %Y    完整的年份    
    %Z    时区的名字(如果不存在为空字符)    
    %%    %’字符
     
     
    random模块
    import random
     
    #取随机数字串
    random.randint(1,3)   #顾尾
    random.randrange(1,5) #顾头不顾尾
     
    #去随机字符串
    random.choice("zouyi") #序列,字符串,中取一个值
    random.choice("[1,2,3,4,5]")
     
    #洗牌功能
    items = [1,2,3,4,5]
    random.shuffle(items)
    [1,4,5,2,3]
     
    #取所有字符和数字
    import string
    checkcode = string.ascii_letters + string.digits
    print (checkcode)
    abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
     
    #随机取数字
    str_1 = string.ascii_letters + string.digits
    code = random.sample(str_1,5)
    code = "".join(code)
    print (code)
     
    m = "".join(random.sample(string.ascii_letters+string.digits,4))
    print (m)
     
    os模块
    #获取当前路径
    os.getcwd()
     
    #切换目录
    os.chdir(r"c:/")
     
    #递归创建目录
    os.makedirs(r"c:/a/b/c/d/")
     
    #递归删除目录
    os.removedirs(r"c:/a/b/c/d/")
     
    #展示都有什么文件
    os.listdir(r"d:/")
     
    #路径和文件分割
    os.path.splite(r"c:/a/b/c/1.txt")
    ("c:/a/b/c/","1.txt")
     
    #取目录
    os.path.basedirname("c:/a/b/c/1.txt")
    c:/a/b/c
     
    os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
    os.chdir("dirname")  改变当前脚本工作目录;相当于shell下cd
    os.curdir  返回当前目录: ('.')
    os.pardir  获取当前目录的父目录字符串名:('..')
    os.makedirs('dirname1/dirname2')    可生成多层递归目录
    os.removedirs('dirname1')    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
    os.mkdir('dirname')    生成单级目录;相当于shell中mkdir dirname
    os.rmdir('dirname')    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
    os.listdir('dirname')    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
    os.remove()  删除一个文件
    os.rename("oldname","newname")  重命名文件/目录
    os.stat('path/filename')  获取文件/目录信息
    os.sep    输出操作系统特定的路径分隔符,win下为"\",Linux下为"/"
    os.linesep    输出当前平台使用的行终止符,win下为" ",Linux下为" "
    os.pathsep    输出用于分割文件路径的字符串
    os.name    输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
    os.system("bash command")  运行shell命令,直接显示
    os.environ  获取系统环境变量
    os.path.abspath(path)  返回path规范化的绝对路径
    os.path.split(path)  将path分割成目录和文件名二元组返回
    os.path.dirname(path)  返回path的目录。其实就是os.path.split(path)的第一个元素
    os.path.basename(path)  返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素
    os.path.exists(path)  如果path存在,返回True;如果path不存在,返回False
    os.path.isabs(path)  如果path是绝对路径,返回True
    os.path.isfile(path)  如果path是一个存在的文件,返回True。否则返回False
    os.path.isdir(path)  如果path是一个存在的目录,则返回True。否则返回False
    os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
    os.path.getatime(path)  返回path所指向的文件或者目录的最后存取时间
    os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间
     
    configparser模块
    用来生成配置文件
     
    生成配置
    import configparser
     
    config = configparser.ConfigParser()
    config["DEFAULT"= {'ServerAliveInterval''45',
                          'Compression''yes',
                         'CompressionLevel''9'}
     
    config['bitbucket.org'= {}
    config['bitbucket.org']['User'= 'hg'
    config['topsecret.server.com'= {}
    topsecret = config['topsecret.server.com']
    topsecret['Host Port'= '50022'     # mutates the parser
    topsecret['ForwardX11'= 'no'  # same here
    config['DEFAULT']['ForwardX11'= 'yes'
    with open('example.ini''w') as configfile:
       config.write(configfile)
     
    读取配置
    import configparser
     
    conf = configparser.ConfigParser90
    config.sections()
    config.read()
    print (config.['bitbucket.org'])
     
     
     
    hashlib模块
    import hashlib
    m = hashlib.md5()
    m.update(b"hello")
    print (m.hexdigest()) #十六进制生成
    m.update(b"it me")
    print (m.hexdigest()) 
    m.update(b"sssssss")  #update是把上一个给增加上去了,也就是hello和hexdigest
    print (m.hexdigest())
     
     
    hmac消息加密
    h = hmac.new(b"123","test content中文".encode(encoding="utf-8"))
    print (h.hexdigest())
     
     
    正则模块
    '.' 默认匹配任意字符(除换行)
    '+' 匹配一次换多次 
    re.search('a.+',"abcdef")
    '?' 匹配0次或1次 匹配前一个"字符"一次或0次
    re.search("aaa?","aalexaaa")
     
    re.match 从头开始匹配
    re.search 匹配包含
    re.findall 把所有匹配到的字符放到以列表中的元素返回
    #findall没有group方法
    re.splitall 以匹配到的字符当做列表分隔符
    re.sub      匹配字符并替换
     
    正则字典模式
     
     
    正则替换sub
     
     
  • 相关阅读:
    Java中的包装类
    Java中的StringBuffer和StringBuilder
    Java中的String类
    分类模型评价指标:混淆矩阵;ROC曲线;AUC面积
    matlab神经网络多分类(模式识别神经网络nprtool)
    matlabKNN多分类
    matlabSVM多分类:fitcecoc函数
    随机森林和GBDT
    matlab数据预处理
    CDN加速地址URL拿不到,显示“无法访问此网站”
  • 原文地址:https://www.cnblogs.com/zoee/p/5809042.html
Copyright © 2020-2023  润新知