zoukankan      html  css  js  c++  java
  • 模块

    模块

    模块的四种形式

    • 自定义模块
    • 第三方模块: 已被编译为共享库的C或C++扩展
    • 内置模块: 使用C编写并链接到python解释器的内置模块
    • 包:把一系列模块组织到一起的文件夹

    import 和 from...import

    import 首次导入模块发生了3件事:

    1. 以模块为准创造了一个模块的名称空间
    2. 执行模块对应的文件,执行过程中产生的名字都放到模块的名称空间
    3. 当前执行文件拿到一个模块名

    需要注意的是,重复导入之前的模块,不会重复执行文件内容

    模块搜索路径的顺序

    1. 先从内存中已经导入的模块中寻找
    2. 内置的模块
    3. 环境变量sys.path中找

    常用内置模块

    time

    # 时间戳
    time_stamp = time.time()
    # 格式化时间
    time.strftime("%Y-%m-%d %X")
    # 结构化时间
    time.localtime()
    time.gmtime()
    
    # 结构化时间与时间戳的转换
    time.mktime(struc_time) # 结构化时间 --> 时间戳
    
    # 时间戳转化为结构化时间
    time.localtime()
    time.gmtime()
    
    
    # 格式化时间转换为结构化时间
    time.strptime("2016-06-06 16:28:56", "%Y-%m-%d %X")
    
    # 结构化时间转换为结构化时间
    time.strftime()
    

    os

    os.getcwd()
    os.chdir()
    os.pardir()
    os.listdir()
    os.system("cmd command")
    os.path.split()
    os.path.exists()
    
    os.path.join()
    

    datetime

    datetime.datetime.now()
    datetime.datetime.now() + datetime.timedelta(days=3)
    c_time = datetime.datetime.now()
    c_time.replace(years=1)
    ### sys
    
    ``` python
    sys.argv
    sys.modules
    sys.path
    

    json和pickle

    json.dump # 序列化
    json.load # 反序列化
    
    # picke支持python所有类型的序列化和反序列化
    

    logging

    logging.debug
    logging.info
    logging.warning
    
    logging.basicConfig(filename, format, datefmt, level)
    
    # logger对象
    
    logger = logging.getLogger(__file__)
    
    # Handler对象
    h1 = logging.FileHandler("t1.log")
    h2 = logging.StreamHandler()
    
    # Formatter 对象
    
    fmt1 = logging.Formatter("..")
    fmt2 = logging.Formatter("..")
    
    # 为handler对象绑定格式
    h1.setFormatter(fmt1)
    h2.setFormatter(fmt2)
    
    # 将Handler添加给logger
    logger.addHandler(h1)
    logger.addHandler(h2)
    
    

    random

    random.random() # 大于0小于1之间的小数
    
    random.randint(1,9) # 大于等于1小于等于9的整数
    random.uniform(1,9) # 大于1小于9的数
    random.choice()
    random.sample(lst, n) # 列表内任意n个元素的组合
    random.shuffle()
    

    hashlib

    m = hashlib.md5()
    m.update("hello".encode("utf8"))
    m.hexdigest()
    

    hmac.new

    h = hmac.new(b"key")
    h.update(b"hello")
    h.hexdigest()
    

    re

    . # 匹配任意字符,除
    
     # 转义符
    d # 数字
    w # 单词字符
    
    # 数量词
    * # 0或无限
    + # 一次或无限 
    ?# 0次或1次
    {m} # m 次
     *?# 变成非贪婪模式
    
    # 边界匹配
    ^ # 字符串开头
    $ # 字符串末尾
    
    # 逻辑,分组
    | # 表示左右任意一个匹配
    
    
    [^] # 取反
    
    
    # 常用函数
    re.findall("pattern", "str")
    re.search
    re.match
    
    # 修饰符
    re.S # 使.匹配
    在内所有字符
    re.I # 不区分大小写
    re.sub("abcabc", " ")
    
    # 分组
    re.findall("a(w+)a", string) # 只将a之间的字符返回
    re.split("parttern", string)
    

    numpy

    np.array # 创建数组
    arr.shape # 获取数组行列数
    arr[:1, :] # 切割数组
    np.hstack # 合并数组应该具有相同的行数
    np.vstack # 合并数组应该具有相同的列数
    np.zeros, ones, eye, empty # 构造数组
    
    
  • 相关阅读:
    算法基础<七> 加权有向图
    union 分页/group/join 复杂查询(.net core/framework)
    扩展Elasticsearch客户端简化ES查询(.net core/framework)
    对EF Core进行扩展使支持批量操作/复杂查询
    Grpc对象转proto代码工具
    扩展ADO.net实现对象化CRUD(.net core/framework)
    Sublime Text 4 破解笔记
    python三元表达式(三目运算符)的坑
    xaf-常见问题解答
    xaf.blazor中如何开启诊断按钮
  • 原文地址:https://www.cnblogs.com/YajunRan/p/11595368.html
Copyright © 2011-2022 走看看