一.加密模块

  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. 利用MathType为公式编号并引用

    序言 在理工科的论文撰写过程中, 公式编辑.编号以及引用非常普遍, 但是笔者没有发现word本身对公式编号和引用有比较好的支持, 所以只好求助于第三方插件. MathType在公式编辑方面表现比较出色 ...

  2. selenium--鼠标事件

    鼠标事件perform() #执行所有ActionChains中存储的行为context_click() #右击事件double_click() #双击事件drag_and_drop(source,t ...

  3. AES加密解密 助手类 CBC加密模式

    "; string result1 = AESHelper.AesEncrypt(str); string result2 = AESHelper.AesDecrypt(result1); ...

  4. C语言第02次作业--循环结构

    1.本章学习总结 1.1思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 1- 经过这两周的学习,我深切地体会C语言非常的难(对于我而言).大部分情况都是题目不理解和没有思路,或者编译 ...

  5. cmd中查看MySQL数据库表数据及结构

    0. 1 .cmd进入mysql安装的bin目录(C:\Program Files\XXXXXX\MySQL Server 5.6\bin) mysql -hlocalhost -uroot -p 回 ...

  6. c#子类序列化与父类序列化(Serializable)的区别

    今天码代码,遇到了一个很奇怪的问题.就是子类继承了Serializable,父类没有,最后面,子类的数据转为byte[],并存储到数据库,再从数据库出来转为子类对象,发现,父类的变量,值为空! 最后调 ...

  7. PostgreSQL 9.5.x的架构图及外存图

  8. 微信中H5网页如何唤醒打开外部浏览器打开指定链接

    最近遇到一个需求.朋友找我制作一个在微信中的聊天框,或者公众号菜单发布一条链接或者二维码.跳出微信打开一个指定的我们自己的页面, 拿到这个需求后我们团队分开去找资料研究方案,通过微信的开发文档.腾讯的 ...

  9. C#-----类DateTime的常用方法

    1.TryParse(string s, out DateTime result)    将日期和时间的指定字符串表示形式转换为其 System.DateTime 等效项,并返回一个指示转换是否成功的 ...

  10. Linux机器重启情况查询

    在实际开发过程中,有时可能发现有一些服务器的进程挂了,查询相关错误日志也没有头绪.此时需要考虑是否是由于机器重启导致的错误 使用命令last reboot来查看是否机器自动重启 导致服务器重启的原因有 ...