zoukankan      html  css  js  c++  java
  • DAY20 常用模块(三)

    一.加密模块

      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>
    View Code

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

  • 相关阅读:
    WebView&HTML5-----使用WebView播放HTML5视频文件
    iOS中FMDB的使用
    Android Studio快速集成讯飞SDK实现文字朗读功能
    NSURLSession下载
    Android传感器应用——重力传感器实现滚动的弹球
    iOS开发中FMDB的使用
    Android WindowManager实现悬浮窗效果 (一)——与当前Activity绑定
    ABP理论学习之数据传输对象(DTO)
    ABP理论学习之应用服务
    ABP理论学习之数据过滤器
  • 原文地址:https://www.cnblogs.com/majingjie/p/10713248.html
Copyright © 2011-2022 走看看