• Day 16 os模块/sys模块/json/pickle模块/logging模块


    os模块

    os模块是用来与操作系统交互,控制文件/文件夹

    os.path.isfile(path)

    判断path是否是存在的一个文件,如果存在,返回True,否则返回False

    os.remove('')

    删除一个文件

    os.rename('', '')

    重命名一个文件

    os.path.isdir(path)

    判断path是否是一个文件夹,如果是,返回True,否则返回False

    os.rmdir(path)

    删除文件夹

    os.listdir('dirname')

    列出文件夹下所有文件

    os,getcwd()

    返回当前文件的所在文件夹

    os.path.join()

    将多个路径组合后返回

    os.path.exists(path)

    判断文件路径是否存在,如果存在返回True,否则返回False

    os.path.abspath()

    返回path规范化(不同操作系统)的绝对路径

    sys模块

    与python解释器交互

    sys.argv

    import sys
    
    res = sys.argv
    print(res)
    

    当接受命令行式运行文件时,接收多余参数

    json模块/pickle模块

    json模块:跨平台数据交互,json串

    序列化:按照特定的规则排序(json串-->跨平台交互,传输数据)

    反序列化:按特定的规则将json串转化成python/java/c/php需要的数据类型

    import json
    
    lis = [1, 2, (3, 4)]
    # 序列化
    with open('test.txt', 'w', encoding='utf8') as fw:
        json.dump(lis, fw)
        
    # 反序列化
    with open('test.txt', 'r', encoding='utf8') as fr:
        data = json.load(fr)
        print(data)
    

    pickle模块:不可以跨平台,但可以

    import pickle
    
    lis = [1, 2, 3]
    # 序列化
    with open('test.txt', 'wb') as fw:
        pickle.dump(lis, fw)
        
    # 反序列化
    with open('test.txt', 'rb') as fr:
        data = pickle.load(fr)
        print(data)
    

    [1, 2, 3]

    logging模块

    logging模块:用来记录日志

    import logging
    
    # 日志级别(如果不设置,默认显示30以上)
    ## v1
    logging.info('info')  # 10
    logging.debug('debug')  # 20
    logging.warning('warning')  # 30
    logging.error('error')  # 40
    logging.critical('critical')  # 50
    
    
    ## v2 --> 添加设置
    
    logging.basicConfig(filename='20190927.log',
                        format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
                        datefmt='%Y-%m-%d %H:%M:%S %p',
                        level=10)
    
    username = 'nick'
    goods = 'bianxingjingang'
    logging.info(f'{username}购物{goods}成功')  # 10
    
    
    ## v3: 自定义配置
    
    
    # 1. 配置logger对象
    nick_logger = logging.Logger('nick')
    json_logger = logging.Logger('jason')
    
    # 2. 配置格式
    formmater1 = logging.Formatter('%(asctime)s - %(name)s -%(thread)d - %(levelname)s -%(module)s:  %(message)s',
                                   datefmt='%Y-%m-%d %H:%M:%S %p ', )
    
    formmater2 = logging.Formatter('%(asctime)s :  %(message)s',
                                   datefmt='%Y-%m-%d %H:%M:%S %p', )
    
    formmater3 = logging.Formatter('%(name)s %(message)s', )
    
    # 3. 配置handler --> 往文件打印or往终端打印
    h1 = logging.FileHandler('nick.log')
    h2 = logging.FileHandler('json.log')
    sm = logging.StreamHandler()
    
    # 4. 给handler配置格式
    h1.setFormatter(formmater1)
    h2.setFormatter(formmater2)
    sm.setFormatter(formmater3)
    
    # 5. 把handler绑定给logger对象
    nick_logger.addHandler(h1)
    nick_logger.addHandler(sm)
    json_logger.addHandler(h2)
    
    # 6. 直接使用
    nick_logger.info(f'nick 购买 变形金刚 4个')
    # json_logger.info(f'json 购买 变形金刚 10个')
    
  • 相关阅读:
    LAPACK(5)——矩阵广义特征值问题和QZ分解
    数据结构与算法——堆
    STL(1)——查找函数find的使用
    数据结构与算法——多项式
    LAPACK(6)——总结
    设计模式代理模式
    C#防盗链
    设计模式组合模式
    JavascriptFolder对象
    JavascriptTextStream对象
  • 原文地址:https://www.cnblogs.com/2222bai/p/11603839.html
Copyright © 2020-2023  润新知