# os:操作系统接口 import os # result = os.getenv('path') # getenv()获取环境变量 # print(result) # os.path.split() 把路径分为2部分 1个是目录路径 1个文件名 # os.path.dirname() 分割的第一个元素 # os.path.basename() 分割的第二个元素 # print(os.path.split('D:/Wilia/1.py')) # ('D:/Wilia', '1.py') # print(os.path.dirname(r'D:\Wilia\1.py')) # D:\Wilia # print(os.path.basename(r'D:\Wilia\1.py')) # 1.py # os.path.exists() 判断路径是否存在,存在为True,不存在False # print(os.path.exists(r'D:\Wilia\1.py')) # True # print(os.path.isabs(r'D:\Wilia\1.py')) # True 绝对路径:完整路径 # print(os.path.isfile(r'D:\Wilia\1.py')) # True isfile是否是文件 # print(os.path.abspath('.')) # 返回当前路径的绝对路径 D:\Wilia\25.内置模块 # print(os.path.abspath('../')) # D:\Wilia print(os.path.isdir(r'D:\Wilia')) # True import sys """ “函数和功能”:主要是对python解释器系统进行各种操作 1. sys.getdefaultencoding(): 获取系统当前编码 2. sys.path:返回环境变量的路径 3. sys.platform:返回当前系统平台 4. sys.version:查看目前系统python的版本 """ # print(sys.argv) # ['D:/python/untitled/基础/内置模块/sys模块.py'] # print(sys.getdefaultencoding()) # utf-8 # print(sys.path) # 返回环境变量的路径 # print(sys.platform) # win32 当前系统平台 # print(sys.version) # python version """ “函数和功能”:主要是用来处理python中时间的内置模块 1. time.time():获取的是一个时间戳 2. time.localtime():将时间戳转换为数组格式的时间 3. time.asctime():把表示时间的元组简化 4. time.strftime():选择性简化 5. time.strptime():将格式字符串转化成struct_time """ import time # t1 = time.time() # print(t1) # 1619613244.2331262 # # t2 = time.localtime(t1) # print(t2) # # time.struct_time(tm_year=2021, tm_mon=4, tm_mday=28, tm_hour=20, tm_min=34, tm_sec=30, tm_wday=2, tm_yday=118, tm_isdst=0) # # print(t2.tm_hour) # # print(t2.tm_year) # # # t3 = time.strftime('%Y-%m-%d %H:%M:%S', t2) # str 字符串, f 代表format格式化 # print(t3) # 返回字符串的当地时间 # # 2021-04-28 20:39:32 # # # # 反向转换 # # t4 = time.strptime(t3, '%Y-%m-%d %H:%M:%S') # print(t4) # # time.struct_time(tm_year=2021, tm_mon=4, tm_mday=28, tm_hour=20, tm_min=41, tm_sec=30, tm_wday=2, tm_yday=118, tm_isdst=-1) # # # t5 = time.mktime(t4) # print(t5) # 1619613690.0 # print(time.asctime()) # Wed Apr 28 20:44:39 2021 """ python日志处理的方式: 1. print() 2. logging模块:能够查看所有运行相关的记录,按需设置日志级别后,来显示日志内容 “功能”:主要是用来在控制台输出日志 “日志”:是一种可以追踪某些软件运行时所发生事件的方法 “作用”: 1. 程序调试 2. 了解软件程序运行情况,是否正常 3. 软件程序运行故障分析与问题定位 “日志等级”: DEBUG 调试信息 INFO 普通信息 WARNING 警告信息 ERROR 错误信息 CRITICAL 危险信息 """ import logging # # 1> 创建log文件 # logging.basicConfig(filename='test.log', level=logging.DEBUG) # # # 2> 在log文件中写入相关日志信息 # # 调试信息 # logging.debug("this is debug message !") # # 普通信息 # logging.info("this is info !") # # 警告信息 # logging.warning("this is warning !") # # 错误信息 # logging.error("this is error !") # # 危险信息 # logging.critical("this is critical !") # %(levelname)s 日志级别 # %(msg)s or %(message)s 日志内容 # logging.basicConfig(format="日志级别: %(levelname)s \n 日志内容: %(msg)s", level=logging.DEBUG) # logging.basicConfig(format="日志级别: %(levelname)s \n 日志内容: %(message)s", level=logging.DEBUG) # # # # # 调试信息 # # logging.debug("this is debug message !") # # # 普通信息 # # logging.info("this is info !") # # # 警告信息 # # logging.warning("this is warning !") # # # 错误信息 # # logging.error("this is error !") # # # 危险信息 # # logging.critical("this is critical !") # # # # # # logging.basicConfig() """ 配置日志管理器 步骤: 1. 初始化对象 2. 设置级别 3. 定义handler(主要是控制显示方式:控制台显示;在日志文件中显示) 4. 格式化输出 模块组件: 日志器:Logger 应用程序调用接口 处理器:Handler 把日志发送到指定的位置 过滤器:Filter 过滤日志信息(可选) 格式器:Formatter 格式化输出日志 """ import logging # 1. 创建一个logger日志管理器 l1 = logging.getLogger() # 设置级别, 达到什么级别才能输出到控制台 l1.setLevel(logging.DEBUG) # 2. 定义handler # 在控制台输出,需要用到StreamHandler() sh = logging.StreamHandler() sh.setLevel(logging.DEBUG) # 在文件输出,FilerHandler() fh = logging.FileHandler('fileHandler.log', encoding='utf-8') fh.setLevel(logging.WARNING) # 3. 定义输出的格式 -- 格式化 fm = logging.Formatter( 'Time : %(asctime)s' 'level: %(levelname)s' 'msg : %(message)s' ) # 4. 告诉哪些处理器要以上面的格式来进行输出 sh.setFormatter(fm) fh.setFormatter(fm) # 5. 将控制台处理对象sh和文件处理对象fh添加到logger日志管理器Handler中去 addHandler() l1.addHandler(sh) l1.addHandler(fh) # 6. 设置每个级别的日志内容 l1.debug("debug") l1.info("info") l1.error("error") l1.warning("warning") l1.critical("critical") ### 结果 - file只有大于WARNING的日志,控制台有DEBUG的日志