当然可以,下面是 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技术站