zoukankan      html  css  js  c++  java
  • python常用工具

    创建规范目录

    import os
    
    BASE_PATH = os.path.dirname(__file__)
    li = ['bin', 'conf', 'core', 'db','interface ','lib', 'log']
    
    
    def mkdir(path):
        path = path.strip()
        path = path.rstrip()
        isExists = os.path.exists(path)
        if not isExists:
            os.makedirs(path)
            print(path + ' 创建成功')
            return True
        else:
            print(path + ' 目录已存在')
            return False
    
    
    for i in li:
        mkdir((BASE_PATH + '\' + i))
    
    path = BASE_PATH + '\' + 'readme.txt'
    with open(path, 'w') as f:
        pass 
    规范目录

    通过字典配置日志

    standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]' 
                      '[%(levelname)s][%(message)s]' #其中name为getlogger指定的名字
    
    simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'
    
    id_simple_format = '[%(levelname)s][%(asctime)s] %(message)s'
    logfile_path = "dd.log"
    
    LOGGING_DIC = {
        'version': 1,
        'disable_existing_loggers': False,
        'formatters': {
            'standard': {
                'format': standard_format
            },
            'simple': {
                'format': simple_format
            },
        },
        'filters': {},
        'handlers': {
            #打印到终端的日志
            'console': {
                'level': 'DEBUG',
                'class': 'logging.StreamHandler',  # 打印到屏幕
                'formatter': 'simple'
            },
            #打印到文件的日志,收集info及以上的日志
            'default': {
                'level': 'DEBUG',
                'class': 'logging.handlers.RotatingFileHandler',  # 保存到文件
                'formatter': 'standard',
                'filename': logfile_path,  # 日志文件
                'maxBytes': 1024*1024*5,  # 日志大小 5M
                'backupCount': 5,
                'encoding': 'utf-8',  # 日志文件的编码,再也不用担心中文log乱码了
            },
        },
        'loggers': {
            #logging.getLogger(__name__)拿到的logger配置
            '': {
                'handlers': ['default', 'console'],  # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕
                'level': 'DEBUG',
                'propagate': True,  # 向上(更高level的logger)传递
            },
        },
    }
    
    
    
    
    导入的格式
    import logging.config
    
    logging.config.dictConfig()
    
    在项目中快捷导入
    import os
    import sys
    BASE_DIR=os.path.dirname(os.path.dirname(__file__))
    sys.path.append(BASE_DIR)
    字典配置日志

    md5加密

    import hashlib
    
    
    def getMD5(path):
        md5 = hashlib.md5()
        with open(path, 'rb') as f:
            while True:
                data = f.read(1024)
                if not data:
                    break
                md5.update(data)
        return md5.hexdigest()
    MD5加密

    打印错误信息

    def print_error(msg):
        print('33[41;36m %s 33[0m' % msg)
    打印错误信息

    完整装饰器

    from functools import wraps
    def outer(func):
        @wraps(func)
        def inner(*args,**kwargs):
            return func(*args,**kwargs)
        return inner
    
    @outer
    def login():
        """
        :return:
        """
        pass
    
    print(login)
    完整装饰器

    等待更新。。。

  • 相关阅读:
    Java实现 蓝桥杯 历届试题 翻硬币
    后台管理UI推荐
    js跳转页面方法(转)
    Request常用方法 (总结)
    Eclipse项目 迁移到 Intellj IDEA
    由后端来类比前端设计的思考(转)
    数据库字段命名及设计规范(转)
    如何改变Myeclipse编辑区背景色(转)
    Myeclipse和windows调节成护眼色
    qt截获html请求(继承QNetworkAccessManager和QNetworkReply)
  • 原文地址:https://www.cnblogs.com/ShenJunHui6/p/10497636.html
Copyright © 2011-2022 走看看