加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

常用模块

发布时间:2020-12-15 23:10:39 所属栏目:安全 来源:网络整理
导读:os模块: os模块是和操作系统交互的模块 和文件相关的操作: os.remove? 删除一个文件 os.rename("old_name","new_name")? ?重命名文件/目录 os.mkdir("dirname")? 生成单级目录,相当于shell?中的mkdir?dirname os.rmdir("dirname")? ? 删除单级目录,若目录不

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 匹配数字
n 匹配一个换行符
t 匹配一个制表符
b 匹配一个单词的结尾
^ 匹配字符串的开始
$ 匹配字符串的结尾
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....

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读