zoukankan      html  css  js  c++  java
  • 模块讲解---os模块,sys模块,json和pickle模块,logging模块

    模块的用法

    通过 import 或者from......import...... 进行调用

    os模块

    os模块的功能:负责程序与操作系统的交互,多用关于文件处理。

    常用的功能

    1.对文件的操作:

    (1)判断是否为文件 os.path.isfile(r' ')

    res = os.path.isfile(r'D:Python学习python 12期教学视频')
    print(res)
    
    # 输出为False
    

    (2)删除文件 os.remover(r' ')

    os.remover(r'D:Python学习python 12期教学视频day 16	est.pkl')
    

    (3)重命名文件 os.remame(r' ',r' ')

    2.对文件夹的操作:

    (1)判断文件是否文件夹 os.path.isdir()

    (2) 创建文件夹 os.mkdir(r' ')

    (3)删除文件 os.rmdir(r' ')

    (4)列出文件夹内所有的文件 os.listdir(r' ')

    res = os.distdir(r'D:Python学习python 12期教学视频')
    print(res)
    

    3.辅助性的操作

    (1)当前文件所在的文件夹 os.getcwd()

    res = os.getcwd()
    print(res)
    

    (2)当前文件所在的具体路径 os.path.abspath(file)

    res = os.path.abspath(__file__)
    print(res)
    

    (3)文件的文件夹 os.path.dirname(file)

    res = os.path.dirname(__file__)
    print(res)
    

    (4)拼接文件路径 os.path.join()

    res = os.path.join(文件名,'路径')   # 如有多个路径用逗号隔开
    

    (5)判断路径是否存在 os.path.exists()

    res = os.path.exists(r'D:Python学习python 12期教学视频day 16	est.pkl')
    print(res)
    

    sys模块

    sys模块功能:与python解释器交互

    常用的功能

    (1)sys.argv z最常用,当使用命令行运行文件,接收多余参数

    (2)sys.modules.key() 返回当前导入的所有模块

    json和pickle模块

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

    pickle模块功能:不跨平台,针对python所有数据类型,如集合,使用方法和json一摸一样

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

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

    # 仅作了解
    json.dumps()   #序列化,将python变成json串
    json.loads()   #反序列化,将json串变成需要的数据类型
    
    Json类型   Python类型
       {}	   dict
      []	   list
    "string"	str
    520.13	   int或float
    true/false	True/False
     null	    None
    
    # json 实例
    import json
    
    dic = [1, (1, 2)]
    
    res = json.dumps(dic)  # json串中没有单引号,
    print(type(res), res)  # 跨平台数据交互
    
    res = json.loads(res)
    print(type(res), res)
    
    # (********)
    # dic = {'a': True, 'b': None}
    
    # # # 序列化字典为json串,并保存文件
    # import json
    # def dic():
    #     print('func')
    # with open('test.json', 'w', encoding='utf8') as fw:
    #     json.dump(dic, fw)
    #
    # # 反序列化
    # with open('test.json', 'r', encoding='utf8') as fr:
    #     data = json.load(fr)
    #     print(type(data), data)
    
    # goods = {
    #     1: 'wawa',
    # }
    #
    # with open('nick.json', 'r', encoding='utf8') as fr:
    #     data = json.load(fr)
    #     data['wawa'] = 1
    #     data['extra'] -= 10
    #     data['locked'] = 1
    # with open('nick.json', 'w', encoding='utf8') as fw:
    #     json.dump(data, fw)
    

    4. logging模块

    • logging 模块的作用

      就是记录日志

    import logging
    
    # 日志级别(如果不设置,默认显示30以上)
    # v1
    # logging.info('info')  # 10
    # logging.debug('debug')  # 20
    # logging.warning('wraning')  # 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个')
    
  • 相关阅读:
    shell编程基础干货
    HIVE的高级操作
    Linux service,挂载,定时任务等常用服务
    Linux(二)高级文本处理
    Linux基本使用命令
    07-MySQL 架构介绍
    06-Re: 视图&过程&触发器
    05-安装 MySQL5.7
    [04] 继承&聚合&war
    [03] 仓库&生命周期&插件目标
  • 原文地址:https://www.cnblogs.com/whkzm/p/11600917.html
Copyright © 2011-2022 走看看