zoukankan      html  css  js  c++  java
  • 常用的模块

    os模块:

    • os模块是和操作系统交互的模块

    和文件相关的操作:

    • os.remove  删除一个文件
    • os.rename("old_name","new_name")   重命名文件/目录
    • os.mkdir("dirname")  生成单级目录,相当于shell 中的mkdir dirname
    • os.rmdir("dirname")    删除单级目录,若目录不为空则无法删除,报错;相当于shell 中 rmdir  敌人那么
    • os.stat("path/filename")   获取文件/目录信息
    • os.listdir("dirname")  列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表的方式打印
    • os.listdir("dirname")  列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表的方式打印
    • os.removedirs("dirname1")   若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依次类推

    os.path系列:

    • os.path.abspath(path)  返回path规范化的绝对路径
    • os.path.split(path)  将path分割成目录和文件名二元组返回
    • os.path.dirname(path) 返回path的目录,其实就是os.path.split(path) 的第一个元素
    • os.path.basename(path)  返回path最后的文件名,如果path以/或结尾,那么就会返回空值.即os.path.split(path) 的第二个元素
    • os.path.exists(path)  如果path存在,返回True ;如果path不存在,返回False
    • os.path.isabs(path)  如果path是绝对路径,返回True
    • os.path.isfile(path)  如果path是一个存在的文件就返回True,反之就是False
    • os.path.isdir(path)  如果path是一个存在的目录,就返回True;反之.返回False
    • os.path.join(path1[,path2,])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
    • os.path.getatime(path)  返回path所指向的文件或者目录的最后访问时间
    • os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间
    • os.path.getsize(path) 返回path的大小

    re模块:

    • re.findall()     返回所有满足匹配条件的结果,放在列表里
    • re.search()    函数会在字符串内查找模式匹配,只找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以通过用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None
    • re.math()  同search ,不过math是在字符串开始进行匹配
    • re.split()   用谁分割谁就是空
    • re.sub   替换 
    • re.subn()   返回的是一个元祖(替换的结果,替换了多少次)
    • re.compile()   将正则表达式编译成为一个正则表达式对象
    • re.finditer()   返回一个存放匹配结果的迭代器

    正则表达式:

    元字符 匹配内容
    . 匹配除换行符以外的任意字符
    w 匹配字母或数字或下划线
    s 匹配任意的空白符字符
    d 匹配数字
    匹配一个换行符
    匹配一个制表符
     匹配一个单词的结尾
    ^ 匹配字符串的开始
    $ 匹配字符串的结尾
    W 匹配非字母或数字或下划线
    D 匹配非数字
    S 匹配非空白符字符
    a|b 匹配字符a或字符b
    () 匹配括号内的表达式,也表示一个组
    [....] 匹配字符组中的字符
    [^....] 匹配除了字符组中字符的所有字符

    量词:

    量词 用法说明
    * 重复0次或者多次
    + 重复一次或则多次
    ? 重复0次或者多次
    {n} 重复n次
    {n,} 至少重复n次
    {n,m} 重复n次到m次

    时间模块:

    • 时间戳时间(time.time())
    • 结构化时间
    • 格式化时间(字符串时间)  ----time.strftime('%Y/%m/%d %H:%M:%S')   time.localtime() 当地时间

    三种时间的转换:  

    random模块:

    • 取随机小数:

      • random.random() 默认是0--1,不用写参数
      • random.uniform(n,m)  括号里面写入参数
    • 取随机整数:

      • random.randint(n,m)   闭区间

      • random.randrange(n,m)   包括n,包括m

      • random.randrange(n,m,z)   z ----->表示的是步长   

    • 随机抽取:

      • random.choice()  一个一个抽取
      • random.smaple()  可以指定数量抽取  
    •  打乱顺序:

      • random.shuffle()

     loggind模块(日志模块):

    • 基础配置方式,只能完成一些简单的需求

      •  却点: 不支持同时向文件个屏幕输出,操作系统的编码可能会出现乱码的问题
        import logging
        logging.basicConfig(level=logging.DEBUG)
        logging.debug('debug message')    # 最细节的  计算机计算的那些小过程
         logging.info('info message')      # 普通信息  记录每个用户的操作
        logging.warning('warning message')# 警告信息  你觉得可能会影响到你程序的安全正确率的内容
        logging.error('error message')    # 错误信息  直接影响你程序的健康了
        logging.critical('critical message') # 批判的 把整个userinfo文件删掉了
        基础配置方式
    • 对象方式,灵活性高,可扩展性大

      • 高可配置  
        import logging
        # logger对象的方式  : 灵活性 可扩展性
        logger = logging.getLogger()  # 创建一个logger对象
        logger.setLevel(logging.DEBUG)
        # 创建一个文件操作符 来准备操作日志向文件中写这件事
        fh = logging.FileHandler('mylog.log',encoding='utf-8')
        fh2 = logging.FileHandler('mylog2.log',encoding='utf-8')
        # 创建一个屏幕操作符 来准备操作日志向屏幕中写这件事
        sh = logging.StreamHandler()
        # 创建一个输出格式
        formatter = logging.Formatter('%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')
        formatter2 = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
        
        # 组合
        # 输出格式和文件操作符屏幕操作符绑在一起
        fh.setFormatter(formatter)
        sh.setFormatter(formatter2)
        sh.setLevel(logging.ERROR)
        # logger对象分别和文件操作符屏幕操作符绑在一起
        logger.addHandler(fh)
        logger.addHandler(fh2)
        logger.addHandler(sh)
        
        # 才开始能够使用logger来记录日志
        logger.debug('debug message')
        logger.info('info message')
        logger.warning('warning message')
        logger.error('error message')
        logger.critical('critical message')
        对象方式

     hashlib模块(摘要模块):

    • 有多种算法的模块,每一个算法都可以帮助我们完成一件事,给一个字符串惊醒计算得到一串密文结果
    • 对于不同的字符串,用一个算法加密,计算的结果总是相同的
    • 想要保证安全性可以进行动态加盐

    模块的导入:

    • import....
    • from ...import....
  • 相关阅读:
    SCU 4439 Vertex Cover|最小点覆盖
    SCU 4438 Censor|KMP变形题
    BZOJ 2152: 聪聪可可|点分治
    暑假集训-8.18总结
    AcWing 252. 树|点分治
    Proj THUDBFuzz Paper Reading: Field-aware Evolutionary Fuzzing Based on Input Specifications and Vulnerablity Metrics
    Proj THUDBFuzz Paper Reading: Semantic Fuzzing with Zest
    Proj THUDBFuzz Paper Reading: Smart Greybox Fuzzing
    Proj THUDBFuzz Paper Reading: Language-Agnostic Generation of Compilable Test Programs
    Proj THUDBFuzz Paper Reading: Fuzzing JS Engines with Aspect-preserving Mutation
  • 原文地址:https://www.cnblogs.com/xinjie123/p/10054171.html
Copyright © 2011-2022 走看看