首页 > 其他 > 详细

常用模块

时间:2019-04-17 19:15:04      阅读:96      评论:0      收藏:0      [点我收藏+]

hashlib模块:加密

import hashlib
# 基本使用
cipher = hashlib.md5(需要加密的数据的二进制形式.encode(utf-8))
print(cipher.hexdigest())  # 加密结果码

# 加盐
cipher = hashlib.md5()
cipher.update(前盐.encode(utf-8))
cipher.update(需要加密的数据.encode(utf-8))
cipher.update(后盐.encode(utf-8))
print(cipher.hexdigest())  # 加密结果码

# 其他算法
cipher = hashlib.sha3_256(b‘‘)
print(cipher.hexdigest())
cipher = hashlib.sha3_512(b‘‘)
print(cipher.hexdigest())

hmac模块:加密

# 必须加盐
cipher = hmac.new(.encode(utf-8))
cipher.update(数据.encode(utf-8))
print(cipher.hexdigest())

configparser模块:操作配置文件

# my.ini
# 注释:该配置文件中,值直接书写,但有四种类型
#       -- int float boolean str
# section
[server]
# name:option | value:mysql
name = mysql
version = 20000

[client]
name = owen
adress = 192.168.11.174
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))

subprocess模块:操作shell命令

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(系统默认编码)

xlrd模块:excel读

年终报表
        教学部    市场部    咨询部    总计
Jan-19    10        15        5    30
Feb-19    10        15        5    30
Mar-19    10        15        5    30
Apr-19    10        15        5    30
May-19    10        15        5    30
Jun-19    10        15        5    30
Jul-19    10        15        5    30
Aug-19    10        15        5    30
Sep-19    10        15        5    30
Oct-19    10        15        5    30
Nov-19    10        15        5    30
Dec-19    10        15        5    30
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))

xlwt模块:excel写

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

 

常用模块

原文:https://www.cnblogs.com/wangtenghui/p/10725459.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!