模块

本周总结

  • json模块补充
json文件里面的中文是字节类型的,得在dump(ensure_ascill= False) 是我怎么给你的你就给我怎么样的存。
  • 购物车面条版

  • re模块

    字符组

    
    [0-9]
    [a-z]
    [A-Z]
    

    特殊符号

    .  匹配非换行符
    \d  匹配数字
    \w  匹配数字字母下划线
    \s  匹配空白字符
    \t  匹配制表符
    \D  匹配非数字
    \W  匹配非空白符
    ^   匹配开头
    [^] 匹配非中括号内的东西
    
    

    量词

    *  非贪婪模式0次 贪婪模式匹配无数次
    +  非贪婪模式1次 贪婪模式匹配无数次
    ?  非贪婪模式0次 贪婪模式匹配1次
    {n}  匹配要n个
    {n,} 至少n个
    {n,m} 至少n个最多m个
    
  • subcepress

    # res = subprocess.Popen(
    #     "ipconfigee",
    #     shell=True,
    #     stdout=subprocess.PIPE,  # 建立正确命令的管道
    #     stderr=subprocess.PIPE,  # 建立错误命令的管道
    # 
    # )
    # res1 = res.stdout.read().decode("gbk")  # 获取正确管道里的数据
    # res2 = res.stderr.read().decode("gbk")  # 获取错误管道里的数据
    # print(res1)
    # print(res2)
    
  • hashlib

    md = hashlib.md5()
    md.update("数据")  # 里面的数据必须是二进制
    md.hexdigest()    # 获取数据加密后的密文
    
  • 第三方模块

    第三方模块就是python后面的大佬, python全靠这些库的支持
    才会比别的语言强 调包侠
    
  • pip的使用

     下载第三方模块
        pip install 模块名
        pip install 模块名 == 版本号
        pip install 模块名 -i 源 (就是可以在一些国内的仓库里下载)
        
    	pip -V 查看当前pip版本
    pip下载可能遇到的问题
      报错里的关键字可能又update 这就是报当前的pip的版本太低了, 你可以复制一下后面的代码然后在终端运行一下就是那引号里面,不能把引号也复制了
      报错里的关键字又timeout 超时 可能网不好可以重试一下,也可以换个网在试一下,
      如果没有这些关键字,也看不懂到底是什么,那就面向百度去搜 pip安装 模块名 的时候报错 把 报错粘贴上去然后去找找那个简单的能看懂的去试试
    
  • requests

    可以模拟向浏览器发送请求,然后把获取的数据给传过来。
    
    res = requests.get(网址)
    res.text  这是以文本的内容展示
    res.content 这打印出来的全是二进制
    

openpyxl

在03版本前 .xls
在03版本后 .xlsx

操作excel表格的第三方模块
xlwt往表格写入数据、xlrd往表格里写数据
兼容所有版本的excel文件
openpyxl最近机几年比较火的操作excel表格的模块
03版本之前的兼容性比较差
ps:还有很多操作excel表格的模块 是指涵盖了上述的模块
>>>: pandas
openpysl操作
from openpyxl import Workbook

wb = Workbook()  # 创建一个表

# 创建一个工作簿
wb1 = wb.create_sheet("学生名单")  # 创建一个名为学生名单的工作簿

# 修改工作簿的默认位置
wb2 = wb.create_sheet("哈哈哈名单", 0)

# 修改工作簿的名单
wb2.title = "暗暗名单"

# 填写数据的方式
wb2["F4"] = "哈哈"
#  在第三行 第四列 写入 芜湖
wb2.cell(row=3, column=4, value="芜湖")

wb2.append(["名字", "编号"])

# 保存表格
wb.save("a1.xlsx")

logger

import logging
import logging.config
# 定义日志输出格式 开始
standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]' \
                  '[%(levelname)s][%(message)s]'
# 其中name为 getlogger指定的名字
simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'


# 自定义文件路径
logfile_path = 'a3.log'



LOGGING_DIC = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'standard': {
            'format': standard_format
        },
        'simple': {
            'format': simple_format
        },
    },
    'filters': {},  # 过滤日志
    'handlers': {
        # 打印到终端的日志
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',  # 打印到屏幕
            'formatter': 'simple'
        },
        # 打印到文件的日志,收集info及以上的日志
        'default': {
            'level': 'DEBUG',
            'class': 'logging.handlers.RotatingFileHandler',  # 保存到文件
            'formatter': 'standard',
            'filename': logfile_path,  # 日志文件
            'maxBytes': 1024 * 1024 * 5,  # 日志大小 5M

                # 只要日志文件的大小到 5M 就新建一个文件然后 在继续存

            'backupCount': 5,

                # 文件最多存 5 个 够 5 个就覆盖第一个 然后在覆盖最后一个
                # 就相当于 监控只能保存 7 天的录像

            'encoding': 'utf-8',  # 文件的编码格式
        },
    },
    'loggers': {
        # logging.getLogger(__name__)拿到的logger配置
        '': {
            'handlers': ['default', 'console'],  # 把这上面定义的
                # 两个handler 都加上,即log数据及写入文件又打印到屏幕上
            'level': 'DEBUG',
            'propagate': True,  # 向上(更高level的logger)传递
        },  # 当键不存在的情况下(key设为空字符串)默认都会使用该K:V配置
            # '购物车记录': {
            #     'handlers': ['default','console'],  # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕
            #     'level': 'WARNING',
            #     'propagate': True,  # 向上(更高level的logger)传递
            # },  # 当键不存在的情况下 (key设为空字符串)默认都会使用该k:v配置
    },
}
# 加载字典
logging.config.dictConfig(LOGGING_DIC) 
lg = logging.getLogger("总信息")
lg.info("信息")

等级
debug 10
info 20 
warning 30
error  40 
critical 50

posted @ 2022-10-30 17:03  可否  阅读(40)  评论(0)    收藏  举报