• Python随心记--模块


    time时间模块方法
    import time
        time.time()   #时间戳
        time.localtime()   #结构化时间 也可以时间戳转为结构化时间
            t = time.localtime()
            print(t.tm_year)
            print(t.tm_wday)
        time.gmtime()
        time.mktime(time.localtime())   #把结构化时间转为时间戳
        time.strftime('%Y-%m-%d %X',time.localtime())   #将结构化时间转为字符串时间  
        time.strptime('2018:12:18:22:11:11','%Y:%m:%d:%X')   #将字符串时间转为结构化时间
        time.asctime()
        time.ctime()
        time.sleep()
    datetime时间模块方法
    import.datetime
        datetime.datetime.now()
    random随机模块
    import random
        random.random()
        random.randint(1,6)   #指1-6范围内的数 
        random.randrange(1,6)
        random.choice([11,22,33,44,55,66,77])
        random.sample([11,22,33,44,55,66,77],2)   #随机取两个
        random.uniform(1,5)   #随机浮点数 
        random.shuffle([1,2,3,4,5,6])   #打乱列表顺序 
        #验证码
        import random
        def v_code():
            ret = ''
            for i in range(6):
                num = random.randint(0,9)
                alf = chr(random.randint(65,122))   #字母的ascall
                ret += str(random.choice([num,alf]))
            return ret
        print(v_code())
    
    
    BASEDIR介绍
    __file__   #打印当前执行的路径
    import sys,os
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))   #拿到上级目录
    sys.path.append(BASE_DIR)   #文件添加执行路劲
    os模块
    import os
        os.getcwd()   #获取当前工作目录
        os.path()
        os.chdir()   #改变当前工作目录
        os.curdir()   #返回当前目录
        os.pardir()   #获取当前目录的父级目录字符串名
        os.makedirs()   #生成多层递归文件夹
        os.removedirs()   #删除并递归到上一层(有内容不删)
        os.mkdir()   #生成单层文件夹
        os.rmdir()   #生成单层文件夹(有内容不删)
        os.listdir()   #列出文件目录
        os.remove()   #删除文件
        os.rename()   #改名
        os.stat()   #获取文件信息
        os.sep()   #输出操作系统特定的路径分隔符
        os.linesep()   #输出当前平台使用的行终止符
        os.pathsep()   #输出用于分割文件路径的字符串
        os.name()   #输出字符串只是当前使用平台
        os.system   #运行shell命令
        os.environ   #获取系统环境变量
        os.paht.abspath()   #返回path规范化的绝对值
        os.path.split(path)   #将path分割成目录和文件名二元组返回
        os.path.dirname(path)   
        os.path.basename(path)   #返回path最后文件名
        os.path.exists(path)    #如果path存在返回True
        os.isabs(path)   #如果path是绝对路径,但会True
        os.isfile(path)   #如果path是一个存在的 文件返回True
        os.path.isdir(path)   #如果是一个存在目录返回True
        os.path.join(path)   #将多个路径组合拼接并返回
        os.path.getatime()   #返回目录最后一次存取时间
        os.path.getmtime()   #返回目录最后一次修改时间
    sys模块
    
    
    import sys
        sys.exit(n)   #退出程序
        sys.argv   #命令行参数list
        sys.maxint   #最大int值
        sys.path   #返回模块的手速路径
        sys.platform   #返回操作系统平台名称
    
    
    
    #进度条
    import time
    import sys
    for i in range(10):
        sys.stdout.write('#')
        time.sleep(1)
        sys.stdout.flush()
    json & pickle模块
    import json
        json.dumps(dic)
            dic={'name':'aa',}
            print(json.dumps(dic))
        json.loads(dic)
    shelve模块
    import shelve
        shelve.open(r'shelve')   #将一个字典写入文件
    xml模块
    import xml.etree.ElementTree as ET
    tree = ET.parse('xml_lesson')   #解析xml文件,得到tree对象
    root = tree.getroot()
    print(root.tag)   #root.tag  打印标签
    for i in root:
        # print(i.tag)
        for j in i:
            # print(j.attrib)
            print(j.text)   #取标签的文本内容
    
    for i in root.iter('year'):
        print(i.tag,i.text)
    
    #修改
    for i in root.iter('year'):
        new_year = int(i.text)+1
        i.text = str(new_year)
        i.set('update','year')
    tree.write('xml_lesson')   #把修改的内容写入原文件
    
    #删除
    for i in root.findall('country'):
        rank = int(i.find('rank').text)
        if rank > 50:
            root.remove(i)
    tree.write('xml_lesson')   #把修改的内容写入原文件
    
    #创建xml数据
    new_xml = ET.Element('namelist')   #创建根节点
    name = ET.SubElement(new_xml,'name',attrib={'enumerate':'year'})
    age = ET.SubElement(new_xml,'age',attrib={'checkend':'no'})
    sex = ET.SubElement(new_xml,'sex')
    sex.text = '23'
    
    name2 = ET.SubElement(new_xml,'name',attrib={'enumerate':'year'})
    age = ET.SubElement(name2,'age')
    age.text = '12'
    et = ET.ElementTree(new_xml)   #生成文档对象
    et.write('test.xml',encoding='utf-8')
    
    
    re正则模块
    import re
        ret = re.findall('a...n','helloalvin')   # .通配符 匹配已a开头n结尾,中间点的个数带代表字符
        ret = re.findall('^a..n','helloalvin')   #匹配以a开头,中间点的个数带代表字符
        ret = re.findall('a..n$','helloalvin')   #匹配以n结尾的,中间点的个数代表字符
        ret = re.findall('d*','heddlloddddalvin')   #匹配字符串中的d ,*匹配0到无穷次(贪婪匹配)
        ret = re.findall('d+','heddlloddddalvin')   #匹配字符串中的d ,匹配1到无穷次(贪婪匹配)
        ret = re.findall('ed?','heddllodddeddalvin')   #匹配0到1次
        ret = re.findall('ed{0,}','heddllodddeddalvin')   #{0,}表示0到无穷,{1,}表示1到无穷,{1,}表示1到无穷 {0,1}表示0到1次
        ret  = re.findall('abc*?','abcccc')   #惰性匹配(以最少次数匹配)
        ret  = re.findall('a[bc]','abcdc')   #匹配[]里面任意字符跟[]前面字符组合
        ret  = re.findall('q[a*z]','dwqdqasdq')   #匹配[]里面任意字符跟[]前面字符组合
        ret  = re.findall('q[a-z]','quoqz')   # - 指范围 匹配[]里面任意字符跟[]前面字符组合
        ret  = re.findall('q[a-z]*','quoqz')   # - 指范围 匹配[]里面任意字符跟[]前面字符组合
        ret  = re.findall('q[A-Z]*','qu1oq3z')   # - 指范围 匹配[]里面任意字符跟[]前面字符组合
        ret = re.findall('q[^a-z]','q123')   #[^a-z] 非a-z开头的
        ret = re.findall('q[^a-z]','qa123')   #[^a-z] 非a-z开头的
        ret = eval('12+(56*6+5*(5-2))')
        ret = re.findall('([^()]*)','12+(56*6+5*(5-2))')
        ret = re.findall('d+','12+(56*6+5*(5-2))')   #匹配数字
        ret = re.findall('D+','12+(56*6+5*(5-2))')   #匹配非数字
        ret = re.findall('s+','hello world')   #匹配空格
        ret = re.findall('S+','hello world')   #匹配非空格
        ret = re.findall('w+','hello world_')   #匹配字母数字相当于[a-zA-Z0-9]
        ret = re.findall('W+','hello world_')   #匹配非字母数字相当于[a-zA-Z0-9]
        ret = re.findall(r'I','hello I am LIs')   #匹配一个特殊字符边界 比如空格 &
        ret = re.findall('I\b','hello I am LIs')
        ret = re.findall('c\\l','helloclsad')
        ret = re.findall(r'c\l','helloclsad')
        ret = re.findall(r'ka|b','hellocdsbad')   #管道符|
        ret = re.findall(r'ka|b','hellocdska|bad')   #管道符|
        ret = re.findall('(abc)+','abcabcabc')   #分组
        ret = re.search('(?P<namew+>)','abcabcabc').group()   #分组
        ret = re.search('d+','abc23abc21abc').group()   #分组
        ret = re.search('(?P<name>[a-z]+>)','alex36wupeiq33').group()   #分组
        ret = re.search('(?P<name>[a-z]+>)d+','alex36wupeiq33').group('name')   #分组
        ret = re.search('(?P<name>[a-z]+>)(?P<age>d+>)','alex36wupeiq33').group('age')   #分组
        ret = re.match('a','abc').group()
        ret = re.split('[ab]','abc')   #先按a分割得到''和bcd 在对 ''和 bcd 分别按b分割
        ret = re.sub('d','g','alvin5yuan6')
        ret = re.sub('d','g','alvin5yuan6',1)   #1表示前一个
        ret = re.subn('d','g','alvin5yuan6',1)   #1表示前一个
        ret = re.compile()
        ret = re.finditer()   #返回一个对象
    logging模块
    
    
    import logging
    logging.basicConfig(
            level = logging.DEBUG,
            filename = 'logger.log',   #日志存放位置
            filemode= 'w',
            format = '%(asctime)s %(filename)s[%(lineno)d] %(message)s'   #filename:执行文件名 asctime :时间 lineno:所在文件行号 message:错误信息
        )
    logging.debug('hello')
    logging.info('hello')
    logging.warning('warning message')
    logging.error('error')
    logging.critical('critical message')
    
    def logger():
        logger = logging.getLogger()
        fh = logging.FileHandler('test_log')
        ch = logging.StreamHandler()
        fm = logging.Formatter('%(asctime)s %(message)s')
        fh.setFormatter(fm)
        ch.setFormatter(fm)
    
        logger.addHandler(fh)
        logger.addHandler(ch)
        logger.setLevel('DEBUG')
        return logger
    logger = logger()
    
    logger.debug('hello')
    logger.info('hello')
    logger.warning('warning message')
    logger.error('error')
    logger.critical('critical message')
    
    
    configparser模块
    import configparser
    config = configparser.ConfigParser()
    config['DEFFAULT'] = {
        'ServerAliveInterval':'45',
        'Compression':'yes',
        "Comperssion":'9'
    }
    config['bitbucket.org'] = {}
    config['bitbucket.org']['User'] = 'hg'
    config['topsecret.server.com'] = {}
    topsecret = config['topsecret.server.com']
    topsecret['Host Port'] = '50022'
    topsecret['ForwardXll'] = 'no'
    config['DEFAULT']['ForwardXll'] = 'yes'
    with open('example.ini','w') as f:
        config.write(f)
    
    config = configparser.ConfigParser()
    
    config.read('example.ini')
    #-----查-------
    print(config.sections())
    
    print('bytebong.com' in config)
    
    print(config['bitbucket.org']['user'])
    
    print(config['DEFFAULT']['serveraliveinterval'])
    
    for i in config['bitbucket.org']:   #会把DEFFAULT下的也拿出来
        print(i)
    
    print(config.options('bitbucket.org'))
    print(config.items('bitbucket.org'))
    print(config.get('bitbucket.org','compression'))
    
    #------增删改------
    config.add_section('yuan')
    config.set('yuan','k1','22222')
    config.remove_section('yuan')
    config.remove_option('DEFAULT','forwardxll')
    config.write(open('i.cfg','w'))
    hashlib模块
    import hashlib
    objk = hashlib.md5()   #m = hashlib.sha256
    objk = hashlib.sha256()   #m = hashlib.sha256
    objk = hashlib.md5('sb'.encode('utf8'))   #加盐
    
    objk.update('heloo'.encode('utf8'))
    print(objk.hexdigest())
    
    
    
     
     
     
     
     
    
    
    
     
     
     
     
  • 相关阅读:
    文本框的正则表达式验证
    八皇后问题 回溯法
    Repeater中使用倒计时
    c#导入excel 绑定数据 repeat为例子
    "table" is not mapped 解决方法
    NHibernate的常见问题及解决方案
    Nginx日志切割,跨域配置,防盗链配置
    springboot跨域配置
    图片上传,文件url地址添加时间戳,防止浏览器缓存的情况
    使用Hibernate数据验证
  • 原文地址:https://www.cnblogs.com/Essaycode/p/10171624.html
Copyright © 2020-2023  润新知