一 hashlib模块

import hashlib
md5=hashlib.md5() #可以传参,加盐处理
print(md5)
md5.update(b'alex') #update参数必须是byte类型
md5.update(b'sb')
print(md5.hexdigest()) #结果与update(b'alexsb')是一样的

  输出:

<md5 HASH object @ 0x00000204693FC3C8>
3b30fab9b1de071c65055026862ce00e
import hashlib
md5=hashlib.md5() #hashlib模块 md5类 加括号 实例化
print(md5)
# md5.update(b'alex')
# md5.update(b'sb')
md5.update(bytes('老男孩',encoding='utf-8'))
#bytes 将字符串格式转为byte格式 print(md5.hexdigest())

  输出:

6a7ece82e4ed94a475dab275891d5036

二 logging模块

import logging
logger=logging.getLogger() #生成一个logger对象 <RootLogger root (WARNING)>
formatter=logging.Formatter() #指定logger输出格式,最后要被logger调用。<logging.Formatter object at 0x00000198F07F2C88>
file_handler=logging.FileHandler('log.log') #生成文件日志,<FileHandler D:\Program Files\JetBrains\s7\day28\log.log (NOTSET)>
console_handler=logging.StreamHandler() #生成控制台日志,<StreamHandler <stderr> (NOTSET)>
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter) #通过setFormatter指定输出格式
logger.addHandler(file_handler)
logger.addHandler(console_handler) #未logger对象添加日志处理器
logger.setLevel(logging.INFO) #指定日志的最低输出级别,默认是WARN级别
logger.debug('this is debug info')
logger.critical('thie is critical info')

  输出:

thie is critical info

三 subprocess模块

  subprocess:子流程

  Popen类:

  官方定义: Execute a child program in a new process.在新流程中执行子程序。

import subprocess            #subprocess模块
obj=subprocess.Popen('dir',shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE) #obj是Poppe类实例化的一个对象,
print(obj,type(obj))
res=obj.stdout.read() #obj.stdout是 <_io.BufferedReader name=3>,调用read()方法,读取管道内的数据。
print(res) #管道内的数据是二进制,在windows下是gbk编码的。

  输出:

<subprocess.Popen object at 0x000001873F349B00> <class 'subprocess.Popen'>
b' \xc7\xfd\xb6\xaf\xc6\xf7 D \xd6\xd0\xb5\xc4\xbe\xed\xca\xc7 DATA\r\n \xbe\xed\xb5\xc4\xd0\xf2\xc1\xd0\xba\xc5\xca\xc7 D64A-0BF1\r\n\r\n D:\\Program Files\\JetBrains\\s7\\day30 \xb5\xc4\xc4\xbf\xc2\xbc\r\n\r\n2017/09/26

  stdout,stdin的应用

import subprocess
obj1=subprocess.Popen('tasklist',shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE) #tasklist,findstr都是可以在cmd下运行的指令
obj2=subprocess.Popen('findstr pycharm',shell=True,stdin=obj1.stdout,stdout=subprocess.PIPE)       #stdin=一个Popen对象的stdout
print(obj2.stdout.read().decode('gbk')) #windows下默认编码是gbk格式

  输出:

pycharm64.exe                 5564 Console                   11  1,012,500 K

==>

import subprocess
subprocess.Popen('dir',shell=True) #调用Popen方法已经打开了一个子进程,执行了dir命令。没有std=subprocess.PIPE,看来就是默认输出屏幕了。

  输出:

 ������ D �еľ��� DATA
������к��� D64A-0BF1 D:\Program Files\JetBrains\s7\day32 ��Ŀ¼ 2017/09/28 22:42 <DIR> .
2017/09/28 22:42 <DIR> ..
2017/09/28 22:42 1,520 c.py
2017/09/28 17:04 737 s.py
2 ���ļ� 2,257 �ֽ�
2 ��Ŀ¼ 374,639,685,632 �����ֽ�

python hashlib模块 logging模块 subprocess模块的更多相关文章

  1. python常用模块补充hashlib configparser logging,subprocess模块

    一.hashlib模板 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定 ...

  2. python基础语法13 内置模块 subprocess,re模块,logging日志记录模块,防止导入模块时自动执行测试功能,包的理论

    subprocess模块: - 可以通过python代码给操作系统终端发送命令, 并且可以返回结果. sub: 子    process: 进程 import subprocess while Tru ...

  3. python笔记8 socket(TCP) subprocess模块 粘包现象 struct模块 基于UDP的套接字协议

    socket 基于tcp协议socket 服务端 import socket phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 买 ...

  4. random模块、os模块、序列化模块、sy模块s、subprocess模块

    random随机数模块 random.random( ) 随机产生一个0-1之间的小数 print(random.random()) # 0.31595547439342897 random.rand ...

  5. Python模块之OS,subprocess

    1.os 模块 简述: os 表示操作系统 该模块主要用来处理与系统相关操作 最常用的是文件操作 打开 获取 写入 删除 复制 重命名 常用操作 os.getcwd() : 返回当前文件所在文件夹路径 ...

  6. subprocess模块(了解)

    目录 一.subprocess模块 一.subprocess模块 subprocess模块允许你去创建一个新的进程让其执行另外的程序,并与它进行通信,获取标准的输入.标准输出.标准错误以及返回码等.更 ...

  7. 网络编程 --- subprocess模块,struct模块,粘包,UDP协议,socket_server模块

    目录 subprocess模块 struct模块 粘包 UDP协议 socket_server模块 subprocess模块 作用: 1.可以帮你通过代码执行操作系统的终端命令 2.并返回终端执行命令 ...

  8. Python自动化运维之9、模块之sys、os、hashlib、random、time&datetime、logging、subprocess

    python模块 用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需 ...

  9. python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

    python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess ...

  10. Python基础之模块:6、hashlib模块 subprocess模块 logging模块

    目录 一.hashlib模块 1.简介 2.基本操作与用法 二.subprocess模块 1.简介 2.基本操作与用法 三.logging模块 1.简介 2.基本操作与用法 一.hashlib模块 1 ...

随机推荐

  1. 2018.4.8 Mac/Win 破解StartUml软件

    Mac破解 在桌面选择前往----前往文件夹-----输入"/应用程序/StarUML.app/Contents/www/license/node/LicenseManagerDomain. ...

  2. Spring boot 集成 Dubbo 快速搭建

    架构: 1.ZooKeeper:服务注册中心 2.api工程:提供对外暴露的服务API 3.provider:服务提供者 4.consumer:服务消费者 示例如下: (一)新建 Maven 项目 a ...

  3. CentOS7-samba文件共享服务

    简介: Samba,是在Unix上实现SMB(Server Message Block)的一个工具套件.而SMB通常是windows用来实现共享的,包括文件和打印机等.而Unix上装上SMB,则使得U ...

  4. 安装IAR ewarm

    一  安装准备 (ST方案) 1 嵌入式集成开发环境IAR ewarm 5.41 2 J-Link4.20 3 emberznet-4.3.0协议栈安装包 option1:tools - stm32软 ...

  5. MySQL 5.7.20绿色版安装详细图文教程

    MySQL 5.7.20绿色版安装详细图文教程 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下产品.这篇文章主要介绍了MySQL 5.7.20绿色版安装 ...

  6. hibernate简介以及简单配置

    Hibernate简介: Hibernate是一个开源对象关联关系映射的框架,他对JDBC做了轻量级的封装,使我们可以通过面向对象的思想操作数据库. 为什么要用Hibernate: 1: 对JDBC访 ...

  7. python入门:BREAK 的用法 跳当前循环后,不再执行下面代码块

    #!/urs/bin/env python # -*- coding:utf-8 -*- # BREAK 的作用 跳当前循环后,不再执行下面代码块 while True: ') break ') #w ...

  8. 《linux设备驱动开发详解》笔记——12linux设备驱动的软件架构思想

    本章重点讲解思想.思想.思想. 12.1 linux驱动的软件架构 下述三种思想,在linux的spi.iic.usb等复杂驱动里广泛使用.后面几节分别对这些思想进行详细说明. 思想1:驱动与设备分离 ...

  9. Tomcat Bug记录

    1.问题:org.apache.tiles.request.render.CannotRenderException: ServletException including path '/WEB-IN ...

  10. Do not pour out HDU - 5954 数学积分

    题目:题目链接 思路:纯高等数学问题,不过不是很好积分,具体积分思路及过程参考大佬博客——https://blog.csdn.net/danliwoo/article/details/53002695 ...