一.加密模块

  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")

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

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

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

  2. Python常用模块(三)

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

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

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

  4. DAY20 常用模块(三)

    一.加密模块 1.加密方式: 1.有解密的加密方式 2.无解密的加密方式,碰撞检查 1.不同数据加密后的结果一定不一致 2.相同数据的加密结果一定是一致 2.hashlib模块 1.基本使用 ciph ...

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

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

  6. 20 常用模块 hashlib hmac:加密 xml xlrd xlwt:excel读|写 configparser subprocess

    hashlib模块:加密 加密: 1.有解密的加密方式 2.无解密的加密方式:碰撞检查 hashlib -- 1)不同数据加密后的结果一定不一致 -- 2)相同数据的加密结果一定是一致的 import ...

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

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

  8. 20 Python 常用模块

    collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict. ...

  9. nginx常用模块(三)

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

随机推荐

  1. 非关系统型数据库-mangodb

    第三十六课 非关系统型数据库-mangodb 目录 二十四 mongodb介绍 二十五 mongodb安装 二十六 连接mongodb 二十七 mongodb用户管理 二十八 mongodb创建集合. ...

  2. SQL server 一些小结

    数据库表常用术语 关系 关系即二维表,每一个关系都有一个关系名,就是表名记录 表中的行字段 表中的列 也称属性域 取值范围关联 不同数据库表之间的数据联系关键字 属性或属性的组合,可以用于唯一标识一条 ...

  3. ios ionic3 跳转第三方地图 xcode加入白名单

    之前我有篇随笔讲的是ionic3应用内跳转第三方地图应用的方法 忘了记录在ios内是需要把你用到的第三方地图应用加入跳转URL白名单内的 第三个是高德地图 iosamap 第四个是百度地图 baidu ...

  4. yum安装的Nginx添加第三方模块支持tcp

    需求:生产有个接口是通过socket通信.nginx1.9开始支持tcp层的转发,通过stream实现的,而socket也是基于tcp通信. 实现方法:Centos7.2下yum直接安装的nginx, ...

  5. Java ee Turorial Hello1 Hello1.java解析

    package javaeetutorial.hello1; import javax.enterprise.context.RequestScoped;import javax.inject.Nam ...

  6. ecside中<c:table>使用

    <ec:table action="sjzc/tbWaterproject!list.do" items="objList" var="tbWa ...

  7. where are you?

    #version_s#1.2#version_e# #update_s#https://files.cnblogs.com/files/dyh221/rank0410.zip#update_e#

  8. "Loading a plug-in failed The plug-in or one of its prerequisite plug-ins may be missing or damaged and may need to be reinstalled"

    The Unarchiver 虽好,但存在问题比我们在mac上zip打包一个软件xcode, 然后copy to another mac, 这时用The Unarchiver解压缩出来的xcode包不 ...

  9. bis.org

    巴塞尔官网包含了很多文档,看起来容易晕,简单说明一下. 首先,文档有几种类型(https://www.bis.org/bcbs/help/publ_types.htm): S: Standards 最 ...

  10. URL tomcat中文乱码

    <Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8" conn ...