Python基础之hashlib模块subprocess模块logging模块

当然可以,下面是 Python 中 hashlib、subprocess、logging 模块的详细讲解:

hashlib 模块

hashlib 模块提供了一个模块接口,用于为任意数量的数据生成加密哈希值。在 Python3.x 中,hashlib 模块提供了许多加密哈希算法,包括 MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512、blake2b、blake2s 等等。

hashlib 模块常用 API

在 hashlib 模块中,常用的 API 包括:

  • hashlib.md5() 计算字符串的 MD5 值;
  • hashlib.sha1() 计算字符串的 SHA1 值;
  • hashlib.sha256() 计算字符串的 SHA256 值;
  • hashlib.sha512() 计算字符串的 SHA512 值;
  • hashlib.new() 创建指定哈希算法的哈希对象。

示例

下面为一个使用 hashlib 计算字符串 SHA256 值的例子:

import hashlib

str = "Hello, World!"
sha256 = hashlib.sha256()
sha256.update(str.encode('utf-8'))
print("SHA256 值为:", sha256.hexdigest())

输出结果:

SHA256 值为: 430ce34d020724ed75a196dfc2ad67c77772d169fcb8d62af83df69b9d4b7b4e

subprocess 模块

subprocess 模块用于启动一个新进程并与其进行通信,包括输入输出和错误处理,可以替代 os.system 和 os.spawn 等老旧的模块。

subprocess 模块常用函数

subprocess 模块常用的函数包括:

  • subprocess.call():运行的进程会等待子进程完成。
  • subprocess.check_call():如果返回的状态码非零则触发异常。
  • subprocess.check_output():运行指定参数的命令,返回该命令的标准输出。
  • subprocess.Popen():不同于上面的函数,Popen 启动的程序是异步执行的,如果需要在后台执行,就必须使用该函数。

示例

下面是一个使用 subprocess 模块在 Windows 上执行 ping 命令的例子:

import subprocess

res = subprocess.call('ping www.google.com')

上面代码会在控制台输出 ping 的结果,如果想要获取 ping 命令的输出,可以使用 check_output() 函数,例如:

import subprocess

res = subprocess.check_output('ping www.google.com', shell=True, timeout=1000)
print(res)

logging 模块

logging 模块是 Python 内置的用于记录日志的模块。它可以记录到控制台、文件、SMTP 等。

logging 模块常用 API

logging 模块常用的 API 包括:

  • logging.debug():最低级别的日志记录。
  • logging.info():正常记录级别,为确认程序正常工作。
  • logging.warning():警告记录级别,表示出现了一些不预期的情况或者错误,但程序仍可以继续运行。
  • logging.error():错误记录级别,表示程序出现了无法处理的严重错误,程序会终止并返回错误信息。
  • logging.critical():严重错误记录级别,一般针对致命错误,无法抑制,一定要记录下来。

示例

下面的代码是一个简单的 logging 模块的使用示例:

import logging

logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s %(levelname)s:%(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S',
                    filename='myapp.log',
                    filemode='a')

logging.debug('This message should go to the log file')
logging.info('So should this')
logging.warning('And this, too')

输出结果:

2021-07-16 17:32:05 DEBUG:This message should go to the log file
2021-07-16 17:32:05 INFO:So should this
2021-07-16 17:32:05 WARNING:And this, too

其中 logging.basicConfig 的参数解释如下:

  • level:日志记录级别;
  • format:日志记录的格式;
  • datefmt:日期时间格式;
  • filename:日志文件名称;
  • filemode:日志文件打开模式。

通过这个示例,我们可以知道如何在 logging 中设置日志记录等级和日志文件以及记录格式。这些参数设置决定了我们将如何记录日志以及如何检索它们。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python基础之hashlib模块subprocess模块logging模块 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • pytorch 数据处理:定义自己的数据集合实例

    请看下面的详细讲解。 PyTorch数据处理:定义自己的数据集合实例 在进行深度学习任务时,数据预处理是非常重要的一步,而 PyTorch 中,数据预处理也是必不可少的一环。在大多数情况下,我们需要使用已有的数据集,如官方提供的 MNIST、CIFAR10 等数据集;但有时我们也需要自己定义数据集,例如从图片数据集中自定义一个猫狗二分类的数据集。自定义数据集…

    python 2023年5月14日
    00
  • Python Thread虚假唤醒概念与防范详解

    Python Thread虚假唤醒概念与防范详解攻略 概念介绍 Python 中的多线程编程是常见的并发编程方式,但是在使用线程时,可能会遇到一个比较棘手的问题,就是虚假唤醒(Spurious Wakeup)。所谓虚假唤醒,指的是在多线程编程中,线程因为任何原因(如操作系统调度等)从阻塞状态(waiting)被唤醒,但是实际上并没有收到期望的信号或条件满足的…

    python 2023年5月19日
    00
  • Python正则获取、过滤或者替换HTML标签的方法

    以下是“Python正则获取、过滤或者替换HTML标签的方法”的完整攻略: 一、问题描述 在Python中,我们经常需要处理HTML文本,包括获取、过滤或者替换HTML标签。本文将详细讲解Python正则获取、过滤或者替换HTML标签的方法,并提供两个示例说明。 二、解决方案 2.1 获取HTML标签 在Python中,我们可以使用正则表达式获取HTML标签…

    python 2023年5月14日
    00
  • python实现Simhash算法

    下面是详细讲解“Python实现Simhash算法”的完整攻略,包含两个示例说明。 Simhash算法 Simhash算法是一种用于计算文本相似度的算法。它将文本转换为一个固定长度的二进制向量,并使用哈希函数计算向量的哈希值。Simhash算法的基本思想是将文本中的每个特征转换为一个二进制位,并使用加权函数计算每个特征的权重。然后,将所有特征的加权和转换为一…

    python 2023年5月14日
    00
  • python网络编程学习笔记(一)

    下面是详细讲解“Python网络编程学习笔记(一)”完整攻略,主要包含以下几个方面: 一、准备工作:在学习Python网络编程之前,我们需要准备好相关的开发环境和知识储备,包括Python版本、网络基础知识、socket编程、常见网络协议等。 二、理解网络编程:在学习Python网络编程之前,我们需要对网络编程有一个整体的认识和理解。网络编程可以分为两个部分…

    python 2023年5月19日
    00
  • Django 如何使用日期时间选择器规范用户的时间输入示例代码详解

    当用户需要在表单中输入日期或者时间时,我们很容易遇到很多问题,例如用户可以输入错误的日期格式、或者输入的时间不符合我们预期的范围。而 Django 内置了一些日期时间选择器来帮助我们规范用户输入。以下是如何使用日期时间选择器规范用户的时间输入的攻略: 1. 添加日期时间选择器组件 在 Django 中,可以使用 widgets 添加日期时间选择器组件来规范用…

    python 2023年6月2日
    00
  • pip报错“ModuleNotFoundError: No module named ‘pip._vendor.msgpack’”怎么处理?

    当使用pip安装Python包时,可能会遇到“ModuleNotFoundError: No module named ‘pip._vendor.msgpack’”错误。这个错误通常是由以下原因之一引起的: pip版本过低:如果您的pip版本过低,则可能会出现此错误。在这种情况下,需要升级pip版本。 损坏的pip安装:如果您的pip安装已损坏,则可能会出现…

    python 2023年5月4日
    00
  • python使用xlrd模块读取excel的方法实例

    下面我将给出一个详细的 python 使用 xlrd 模块读取 Excel 的方法实例教程,包含以下内容: 安装 xlrd 模块 读取 Excel 文件基本信息 读取数据 Excel 中含有多个工作表的处理方法 首先,我们需要安装 xlrd 模块。可以使用 pip 命令在命令行终端直接安装: pip install xlrd 安装完成后,我们先来看看如何读取…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部