zoukankan      html  css  js  c++  java
  • day 16小结

    1.os 模块

    对文件操作

    判断是否为文件

    res = os.path.isfile(r'D:上海python12期视频python12期视频day 160 上节课回顾.md')
    print(res)
    

    删除文件

    os.remove(r'文件名')
    

    重命名文件

    os.rename(r'原文件名','修改文件名')
    

    对文件夹操作

    判断是否为文件夹

    os.path.isdir()
    

    创建文件夹

    is not os.path.exists(r'D:上海python12期视频python12期视频	est')
    	os.mkdir(r'D:上海python12期视频python12期视频	est')
    

    删除文件夹

    os.rmdir(r'D:上海python12期视频python12期视频	est')
    

    列出文件夹内所有文件(****)

    res = os.listdir(r'D:上海python12期视频python12期视频	est')
    print(res)
    

    辅助性的

    当前文件的所在文件夹

    res = os.getcwd()
    print(res)
    

    当前文件所在具体路径

    file	pycharm独有
    
    print('__file__:',__file__)
    res = os.path.abspath(__file__)  # 根据不同的操作系统,更换不同的或/
    print(res)
    

    文件的文件夹

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

    拼接文件路径

    res = os.path.join.(os.path.dirname(os.path.abspath(__file__))),'img','test.jpg')
    print(res)
    

    判断路径是否存在(文件or文件夹都适用)

    res = os.path.exists(r'D:上海python12期视频python12期视频	est')
    print(res)
    

    尽量不要写路径

    了解

    执行终端代码

    rse = os.system('dir')
    print(res)
    

    2.sys模块

    与python解释器交互

    最常用,当使用命令行运行文件,接受多余的参数

    import sys
    
    
    res = sys.argv
    print(res)
    

    拿到当前导入的模块

    print(sys.modules.keys())
    

    了解

    sys.argv 命令行参数List,第一个元素是程序本身路径
    sys.modules.keys() 返回所有已经导入的模块列表
    sys.exc_info() 获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息
    sys.exit(n) 退出程序,正常退出时exit(0)
    sys.hexversion 获取Python解释程序的版本值,16进制格式如:0x020403F0
    sys.version 获取Python解释程序的版本信息
    sys.maxint 最大的Int值
    sys.maxunicode 最大的Unicode值
    sys.modules 返回系统导入的模块字段,key是模块名,value是模块
    sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
    sys.platform 返回操作系统平台名称
    sys.stdout 标准输出
    sys.stdin 标准输入
    sys.stderr 错误输出
    sys.exc_clear() 用来清除当前线程所出现的当前的或最近的错误信息
    sys.exec_prefix 返回平台独立的python文件安装的位置
    sys.byteorder 本地字节规则的指示器,big-endian平台的值是'big',little-endian平台的值是'little'
    sys.copyright 记录python版权相关的东西
    sys.api_version 解释器的C的API版本

    3.json和pickle模块

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

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

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

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

    了解序列化和反序列化是什么

    import json
    
    dic = [1,(1,2)]
    
    res = json.jumps(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.jump(dic,fw)
    

    反序列化

    with open('test.json','r',encoding='utf8') as fr:
        data = json.load(fr)
        print(type(data),data)
        
        
    goods = {
        1:'awaw',
    }
    
    with open('nick,json', 'r', encodingn='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)
    

    pickle

    import pickle  # 未来存对象
    
    def func():  # 针对地址而言,只存了一个函数名
        print('func')
        
    with open('test.pkl','wb') as fw:
        pickle.dump(func,fw)
        
        
    def func():
        print('asdglaads')
        
    with open('test.pkl', 'rb') as fr:
        data = pickle.load(fr)
        print(type(data),data)
        data()  # func()
    

    4.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')
    
    # 配置格式
    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个')
    
    
    # 记住以上可以全部忘记,只要会下面的cv大法
    
  • 相关阅读:
    append 注意事项
    列表与字符串转换
    删除列表元素
    段寄存器
    通用寄存器
    最强大的王爽汇编语言学习环境使用教程
    JavaScript获取输入框内容
    ubuntu16.04中将python3设置为默认
    Django之cookie和session
    postman 安装桌面版
  • 原文地址:https://www.cnblogs.com/LZF-190903/p/11600615.html
Copyright © 2011-2022 走看看