Python常用模块实用指南
✅ 模块详解与补充
1️⃣ sys
模块
🧩 功能:
负责程序与 Python 解释器之间的交互。
🔍 常用函数:
函数 | 描述 |
---|---|
sys.getdefaultencoding() | 获取系统默认编码(通常是 'utf-8' ) |
sys.path | 获取当前解释器查找模块的路径列表 |
sys.platform | 获取操作系统平台名称(如 'win32' , 'linux' , 'darwin' ) |
sys.version | 获取 Python 解释器版本信息 |
🧪 示例代码:
import sysprint(sys.getdefaultencoding()) # 输出默认编码格式
print(sys.path) # 输出模块搜索路径
print(sys.platform) # 输出操作系统平台
print(sys.version) # 输出 Python 版本信息
2️⃣ time
模块
🧩 功能:
用于获取和操作时间相关数据。
⏱️ 时间表示方式:
- 时间戳(timestamp):从 1970-01-01 00:00:00 UTC 到现在的秒数。
- 时间元组(struct_time):包含年、月、日、时、分、秒等信息的元组。
- 格式化字符串(format string):自定义格式的时间字符串。
🔍 常用函数:
函数 | 描述 |
---|---|
time.time() | 获取当前时间戳(浮点数) |
time.localtime() | 获取本地时间的 struct_time 对象 |
time.asctime() | 返回当前时间的字符串表示 |
time.ctime() | 返回当前时间的字符串表示(等价于 asctime(localtime()) ) |
time.strftime(format, t) | 将 struct_time 转换为指定格式的字符串 |
time.strptime(string, format) | 将字符串解析为 struct_time |
🧪 示例代码:
import timeprint(time.time()) # 当前时间戳
print(time.localtime()) # 当前时间元组
print(time.asctime()) # 格式化时间字符串
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) # 自定义格式
print(time.strptime("2021-08-02", "%Y-%m-%d")) # 字符串转时间元组
3️⃣ logging
模块
🧩 功能:
记录程序运行时的日志信息,便于调试、分析问题。
🎯 日志级别(从高到低):
级别 | 数值 | 描述 |
---|---|---|
CRITICAL | 50 | 严重错误,表示程序可能无法继续运行 |
ERROR | 40 | 错误信息,但程序仍可运行 |
WARNING | 30 | 警告信息,潜在问题 |
INFO | 20 | 一般信息,确认程序正常运行 |
DEBUG | 10 | 调试信息,用于开发阶段 |
NOTSET | 0 | 不设置级别,默认继承父级 |
默认日志级别是
WARNING
,即只显示WARNING
及以上级别的日志。
🔍 配置参数说明:
参数名 | 含义 |
---|---|
filename | 指定日志输出文件路径 |
filemode | 文件打开模式(默认 'a' ,追加写入) |
level | 设置日志最低记录级别 |
format | 定义日志输出格式 |
🧪 示例代码:
import logging# 配置日志输出
logging.basicConfig(filename='log.log',filemode='a',level=logging.DEBUG,format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)logging.debug("这是一个 debug 日志")
logging.info("这是一个 info 日志")
logging.warning("这是一个 warning 日志")
logging.error("这是一个 error 日志")
logging.critical("这是一个 critical 日志")
4️⃣ random
模块
🧩 功能:
生成随机数或随机选择元素。
🔍 常用函数:
函数 | 描述 |
---|---|
random.random() | 生成 [0.0, 1.0) 的随机浮点数 |
random.uniform(a, b) | 生成 [a, b) 区间内的随机浮点数 |
random.randint(a, b) | 生成 [a, b] 区间内的随机整数 |
random.randrange(start, stop[, step]) | 从 range(start, stop, step) 中随机选一个整数 |
random.choice(seq) | 从序列中随机选择一个元素 |
random.shuffle(seq) | 打乱序列顺序(原地修改) |
🧪 示例代码:
import random# 1 生成大于0 小于1之间的小数 包左不包右
print(random.random())
# 2 产生指定范围的随机小数 包左不包右
print(random.uniform(1,3))
# 3 产生指定范围的随机整数 包含左右
print(random.randint(1,3))
# 4 产生start-stop范围内的整数,包含左边,不包含右边
print(random.randrange(1,4))
# 5 指定产生的随机的步长,随机选择一个数据
# 比如 2 -5 之间 以步长为3 找随机数那么只能是2满足
print(random.randrange(2,5,3))
# 比如 2 -5 之间 以步长为3 找随机数那么只能是2和4满足
print(random.randrange(2,5,2))
✅ 注意事项总结
logging.basicConfig()
只生效一次,多次调用不会生效。random.randrange()
如果范围中只有一个值,结果固定。time.strftime()
和time.strptime()
的格式字符串必须一致。sys.path
可以动态添加模块路径,用于导入本地模块。random.choice()
和random.shuffle()
适用于处理列表、元组等序列类型。