第五周日志模块正则和包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | 1. 模块的使用 2. 为什么要使用模块 1. 从文件级别组织程序,更方便管理 2. 引用别人写的,提升效率 3. 如何实用模块 import spam 第一次导入模块发生几件事: 1. 产生一个新的名称空间 2. 运行原文件代码产生的名字都存放在 1 的名称空间中 运行过程中gloabl关键字指向改名称空间 当前文件的名称空间sapm 名称空间指向了spam.py运行文件的名称空间 def read1(): print (money) import spam import spam #重复导入时重复引用不是重新加载,不会重复加载 money = 1 spam.money #原来属性的不会冲突 #引用的源文件的属性 spam.read1 强调:宝导入的模块在执行的过程中使用自己的独立的名称空间. 2. 起别名 import spam as sm print (sm.money) 3. 一行导入多个模块 import time,sys,spam 4. 如何使用模块 from 模块 import 名字 直接用名字 优点:引用方便 缺点:容易和当前名称空间产生冲突 from span import money as m from span import money.read1 from span import * #名字全部倒入 #* 容易冲突 #_money 下划线开始的名字* 无法导入 5.python 文件的两种用途 1. 直接运行,当做脚本执行 2. 当做模块被导入使用 __name__的值在引用的时候就是文件名spam __name__ 在本地引用的时候就是__main__ 6. 模块的搜索路径 1. 内存 - - - > 内置模块 - - - > 自己定义的模块在sys.path 查找先在内存里面查找 [ 'D:\\PycharmProjects\\wadsd\\day5' , 'D:\\PycharmProjects\\wadsd' , 执行文件所在的文件夹 'D:\\Python36\\python36.zip' , 'D:\\Python36\\DLLs' , zip 相当于文件夹 'D:\\Python36\\lib' , 'D:\\Python36' , 'D:\\Python36\\lib\\site-packages' ] print (sys) # 内置模块C语言写的 <module 'sys' (built - in )> sys.path.append(r 'D:\PycharmProjects\wadsd\day5\02_包\包的使用.py' ) sys.path路径加上就可以找到包 或者放入同一路径 import spam,time time,sleep( 10 ) import span 二 包 包就是文件夹,组织起来调用 包就是包含了__init__.py的文件夹 可以往改文件夹下放一堆子模块. 导入调用 py3的时候包下面没有init.py文件也不会报错.py2不行 包的使用导入时 但凡是在导入时出现点,这是导入包才有的语法 点的左边必须是一个包 使用的时候没有这种限制 包的导入是在以当前执行文件的文件夹下,为相对路径进行查找对应关系 from 包 import 从哪里导入什么 import sys sys.path.append( "主程序目录" ) sys.path.append( "ATM" ) 5. 日志模块的详细用法; 1.logger 产生日志 logger1 = logging.getLogger( '访问日志' ) 2.Filter 几乎不用 3.Hnaderler :接收logger传过来的日志,进行日志格式化, 可以打印到终端,也可以打印到文件 sh = logging.StreamHanderler() 打印到终端. fh1 = logging.FilterHandler( 's1.log' ,encoding = 'utf-8' ) logger1.setLevel( 30 ) sh.setLevel( 10 ) 4. Formatter : 日志格式 |
时来天地皆同力,运去英雄不自由
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!