一.加密模块

  1.加密方式:

    1.有解密的加密方式

    2.无解密的加密方式,碰撞检查

      1.不同数据加密后的结果一定不一致

      2.相同数据的加密结果一定是一致

  2.hashlib模块

    1.基本使用

    cipher = hashlib.md5('需要加密的数据的二进制形式'.encode('utf-8'))

    print(cipher.hexdigest()) # 加密结果码

    2.加盐

    cipher = hashlib.md5()

    cipher.update('前盐'.encode('utf-8'))

    cipher.update('需要加密的数据'.encode('utf-8'))

    cipher.updata('后盐'.encode('utf-8))

    print(cipher.hexdigest()) # 加密结果码

    3.其他算法

    cipher = hashlib.sha3_256(b'')

    print(cipher.hexdigest())

    cipher = hashlib.sha3_512(b'')

    print(cipher.hexdigest())

  3.hmac模块

    # 必须加盐

    cipher = hmac.new('盐'.encode('utf-8'))

    cipher.updata('数据'.encode('utf-8'))

    print(cipher.hexdigest())

二.操作配置文件:configparser模块

  import configparser
  # 初始化配置文件的操作对象
  parser = configparser.ConfigParser()
  # 读
  parser.read('my.ini', encoding='utf-8')
  # 所有section
  print(parser.sections())
  # 某section下所有option
  print(parser.options('section_name'))
  # 某section下某option对应的值
  print(parser.get('section_name', 'option_name'))

  # 写
  parser.set('section_name', 'option_name', 'value')
  parser.write(open('my.ini', 'w'))

三.操作shell命令:subprocess模块

  import subprocess
  order = subprocess.Popen('终端命令', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
  # order.stdout 流对象,order.stdout.read()来获取操作的信息字符串
  suc_res = order.stdout.read().decode('系统默认编码')
  err_res = order.stderr.read().decode('系统默认编码')

  # stdout:存放指令执行成功的信息管道 | stderr 存放指令执行失败的信息管道
  order = subprocess.run('终端命令', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
  # order.stdout 是字符串信息,就是Popen下order.stdout.read()
  suc_res = order.stdout.decode('系统默认编码')
  err_res = order.stderr.decode('系统默认编码')

四.Excel读:xlrd模块

  import xlrd
  # 读取文件
  work_book = xlrd.open_workbook("机密数据.xlsx")
  # 获取所有所有表格名称
  print(work_book.sheet_names())
  # 选取一个表
  sheet = work_book.sheet_by_index(1)
  # 表格名称
  print(sheet.name)
  # 行数
  print(sheet.nrows)
  # 列数
  print(sheet.ncols)
  # 某行全部
  print(sheet.row(6))
  # 某列全部
  print(sheet.col(6))
  # 某行列区间
  print(sheet.row_slice(6, start_colx=0, end_colx=4))
  # 某列行区间
  print(sheet.col_slice(3, start_colx=3, end_colx=6))
  # 某行类型 | 值
  print(sheet.row_types(6), sheet.row_values(6))
  # 单元格
  print(sheet.cell(6,0).value) # 取值
  print(sheet.cell(6,0).ctype) # 取类型
  print(sheet.cell_value(6,0)) # 直接取值
  print(sheet.row(6)[0])
  # 时间格式转换
  print(xlrd.xldate_as_datetime(sheet.cell(6, 0).value, 0))

五.Excel写:xlwt模块

  import xlwt
  # 创建工作簿
  work = xlwt.Workbook()
  # 创建一个表
  sheet = work.add_sheet("员工信息数据")
  # 创建一个字体对象
  font = xlwt.Font()
  font.name = "Times New Roman" # 字体名称
  font.bold = True # 加粗
  font.italic = True # 斜体
  font.underline = True # 下划线
  # 创建一个样式对象
  style = xlwt.XFStyle()
  style.font = font
  keys = ['Owen', 'Zero', 'Egon', 'Liuxx', 'Yhh']
  # 写入标题
  for k in keys:
  sheet.write(0, keys.index(k), k, style)
  # 写入数据
  sheet.write(1, 0, 'cool', style)
  # 保存至文件
  work.save("test.xls")

六.xml模块

<?xml version="1.0"?>
<data>
<country name="Liechtenstein">
<rank updated="yes">2</rank>
<year>2008</year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank updated="yes">5</rank>
<year>2011</year>
<gdppc>59900</gdppc>
<neighbor name="Malaysia" direction="N"/>
</country>
<country name="Panama">
<rank updated="yes">69</rank>
<year>2011</year>
<gdppc>13600</gdppc>
<neighbor name="Costa Rica" direction="W"/>
<neighbor name="Colombia" direction="E"/>
</country>
</data>

  import xml.etree.ElementTree as ET
  # 读文件
  tree = ET.parse("xmltest.xml")
  # 根节点
  root_ele = tree.getroot()
  # 遍历下一级
  for ele in root_ele:
  print(ele)

  # 全文搜索指定名的子标签
  ele.iter("标签名")
  # 非全文查找满足条件的第一个子标签
  ele.find("标签名")
  # 非全文查找满足条件的所有子标签
  ele.findall("标签名")

  # 标签名
  ele.tag
  # 标签内容
  ele.text
  # 标签属性
  ele.attrib

  # 修改
  ele.tag = "新标签名"
  ele.text = "新文本"
  ele.set("属性名", "新属性值")

  # 删除
  sup_ele.remove(sub_ele)

  # 添加
  my_ele=ET.Element('myEle')
  my_ele.text = 'new_ele'
  my_ele.attrib = {'name': 'my_ele'}
  root.append(my_ele)

  # 重新写入硬盘
  tree.write("xmltest.xml")

DAY20 常用模块(三)的更多相关文章

  1. Python之常用模块三(面向对象相关的三个模块)

    hashlib.configparser.logging模块 一.常用模块二 hashlib模块 hashlib提供了常见的摘要算法,如md5和sha1等等. 那么什么是摘要算法呢?摘要算法又称为哈希 ...

  2. day20常用模块

    一.正则内容的补充 import re # ret = re.findall(r'www\.baidu\.com|www\.oldboy\.com','www.baidu.com') # # ret ...

  3. Python常用模块(三)

    一.shelve模块 shelve也是一种序列化方式,在python中shelve模块提供了基本的存储操作,shelve中的open函数在调用的事和返回一个shelf对象,通过该对象可以存储内容,即像 ...

  4. python 15 常用模块三 re模块

    一.正则模块 正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹 ...

  5. python运维开发常用模块(三)DNS处理模块dnspython

    1.dnspython模块介绍: dnspython(http://www.dnspython.org/)是Python实现的一个DNS 工具包,它支持几乎所有的记录类型,可以用于查询.传输并动态更新 ...

  6. day20 python常用模块

    认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀.     但其实import加载的模块分为四个通用类别: 1 使用pytho ...

  7. Python学习 :常用模块(三)----- 日志记录

    常用模块(三) 七.logging模块 日志中包含的信息应有正常的程序访问日志,还可能有错误.警告等信息输出 python的 logging 模块提供了标准的日志接口,你可以通过它存储各种格式的日志, ...

  8. nginx常用模块(三)

    Nginx常用模块(三) ngx_http_proxy_module模块配置(http或https协议代理) proxy_pass URL; 应用上下文:location, if in locatio ...

  9. ansible常用模块详解(三)

    1.模块介绍 明确一点:模块的执行就类似是linux命令的一条命令,就单单的是为了执行一条语句,不是批量的操作,批量操作需要用到playbook内类似shell编写脚本进行批量. 1.1 模块的使用方 ...

随机推荐

  1. LeetCode 5 最长对称串

    LeetCode 5 最长对称串 最早时候做这道题的时候还是用Java写的,用的是字符串匹配的思路,一直Time Limit Exceeded.甚至还想过用KMP开优化子串查找. public cla ...

  2. hook

    hook的定义 hook,钩子,勾住系统的程序逻辑. 在某段SDK源码逻辑执行的构成中,通过代码手段拦截执行该程序,加入自己的代码逻辑 使用价值 hook是安卓面向切面(aop)编程的基础,可以让我们 ...

  3. Spring增强代理模式

    1. 依赖注入;(掌握) 2. XML自动注入;(掌握) 3. 全注解配置;(掌握) 4. 代理模式;(掌握,难点) 依赖注入 构造参数注入 constructor-arg:构造器注入: index: ...

  4. TCP 服务端接收数据解析工具类

    package com.ivchat.common.util; import java.io.BufferedReader;import java.io.IOException;import java ...

  5. [MSF]server/capture/http_javascript_keylogger键盘记录

    server/capture/http_javascript_keylogger DEMO使用的官方的效果图: 使用方法: show options 看看 msf auxiliary(server/c ...

  6. 2017-2018-2 20155228 《网络对抗技术》 实验一:PC平台逆向破解

    2017-2018-2 20155228 <网络对抗技术> 实验一:PC平台逆向破解 实验内容 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用 ...

  7. ftp 上传和下载

    ftp 下载 #!/bin/bash #auth liwei #date DATE=$(date -d today +%Y%m%d) #data files path SRCDIR=/home/web ...

  8. SSM框架下 Failed to load resource: the server responded with a status of 404 (Not Found)错误

    这个错误提示的是js的引用路径有错: 1.检查应用路径是否正确(我的问题是路径是正确的但是去到页面就会提示404错误) 引用路径,最好都使用绝对路径 <script type="tex ...

  9. 2018-2019-2 网络对抗技术 20165316 Exp5 MSF基础应用

    2018-2019-2 网络对抗技术 20165316 Exp5 MSF基础应用 目录 原理与实践说明 实践原理 实践内容概述 基础问题回答 攻击实例 主动攻击的实践 ms08_067_netapi: ...

  10. c#基础之abstract和interface

    一.abstract abstract 的词义是“抽象”,它用来定义抽象类.抽象类不能被实例化只能被继承. 定义抽象类的格式如下:public abstract ClassName{……} 注意:只有 ...