第五周日志模块正则和包

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 : 日志格式

 

posted @   滴滴滴  阅读(260)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· 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 让容器管理更轻松!
点击右上角即可分享
微信分享提示