当前位置: 代码网 > it编程>前端脚本>Python > Python常用内置模块日志、随机数、时间、OS与JSON详解

Python常用内置模块日志、随机数、时间、OS与JSON详解

2026年05月12日 Python 我要评论
在 python 开发中,内置标准库提供了大量开箱即用的实用模块,能极大提升开发效率。本文集中梳理五大常用模块——logging / loguru(日志)、random(随机数

在 python 开发中,内置标准库提供了大量开箱即用的实用模块,能极大提升开发效率。本文集中梳理五大常用模块——logging / loguru(日志)random(随机数)time(时间)、**os(系统交互)**和 json(数据序列化),覆盖日常使用频率最高的函数与用法。

一、日志模块

日志是排查问题的关键手段,python 自带的 logging 是标准解决方案,而第三方库 loguru 则进一步简化了日志操作。

1. logging(标准库)

logging 内置五种日志级别,从低到高依次为:

级别数值含义
debug10详细调试信息
info20正常运行信息
warning30警告,但程序仍可运行
error40错误,部分功能受影响
critical50严重错误,程序可能崩溃

基础用法:

import logging

logging.debug("这是调试信息")
logging.info("程序启动")
logging.warning("磁盘空间不足")
logging.error("数据处理失败")
logging.critical("服务宕机")

默认输出到控制台,且只有 warning 及以上级别会被打印。可以通过 basicconfig 调整输出格式、等级和文件路径。

2. loguru(更友好的日志库)

loguru 是第三方库,以更简洁的 api 和更美观的输出著称。

安装:

pip install loguru

导入与使用:

from loguru import logger

logger.debug("调试信息")
logger.info("普通信息")
logger.success("成功信息")   # loguru 特有
logger.warning("警告")
logger.error("错误")
logger.critical("严重错误")

loguru 的亮点功能:

  • logger.add("file.log") 将日志输出到文件。
  • logger.remove() 可移除默认控制台输出,方便自定义。
logger.remove()                # 移除默认 handler
logger.add("app.log", rotation="1 mb")  # 文件日志,自动轮转

二、random 模块

随机数在测试、模拟、抽奖等场景中非常常用。

  • random.randint(a, b):返回 [a, b] 范围内的随机整数(闭区间)。
import random
print(random.randint(1, 100))   # 1~100 的随机整数
  • random.random():返回 [0.0, 1.0) 的随机浮点数。
print(random.random())          # 0.0 ~ 1.0(不含 1.0)
  • random.choice(seq):从非空序列(列表、元组、字符串)中随机取出一个元素。
colors = ['red', 'blue', 'green']
print(random.choice(colors))    # 随机返回一种颜色
  • random.sample(population, k):从总体中无放回地随机抽取 k 个元素,返回列表。
nums = [1, 2, 3, 4, 5, 6]
print(random.sample(nums, 3))   # eg: [5, 2, 4]

三、time 模块

处理时间相关的操作,常用函数如下:

  • time.time():返回当前时间戳(自 1970-01-01 00:00:00 utc 起算的浮点秒数)。
import time
print(time.time())   # 1680000000.123456
  • time.localtime():将时间戳转为当前时区的 struct_time 对象,不传参数则使用当前时间。
t = time.localtime()
print(t.tm_year, t.tm_mon, t.tm_mday)  # 年 月 日
  • time.sleep(seconds):让程序休眠指定秒数,常用于控制节奏或模拟等待。
print("开始等待...")
time.sleep(2)
print("两秒后继续")

四、os 模块

os 模块提供了与操作系统交互的各种功能,常用于文件和目录操作。

  • os.getcwd():获取当前工作目录。
import os
print(os.getcwd())
  • os.listdir(path):返回指定目录下的所有文件和子目录名称列表,. 表示当前目录。
files = os.listdir(".")
print(files)
  • os.mkdir(path):新建一个目录,如果父目录不存在会抛出异常。
  • os.rmdir(path):删除一个空目录,非空会报错。
  • os.rename(old, new):重命名文件或目录。
  • os.chmod(path, mode):更改文件或目录权限。
  • os.system(command):在子 shell 中执行系统命令,返回退出状态码。
os.system("ls -l")   # linux/macos
os.system("dir")     # windows
  • os.popen(command):执行命令并打开一个管道,返回可读写的文件对象,用于捕获命令输出。

示例:

f = os.popen("echo hello")
output = f.read()
print(output)   # hello

五、json 模块

处理 json 数据是前后端交互的核心环节,python 的 json 模块提供了高效的序列化与反序列化支持。

1. 序列化(python → json)

  • json.dumps(obj):将 python 对象转为 json 格式字符串,返回 str
import json
data = {"name": "alice", "age": 25}
json_str = json.dumps(data)
print(json_str)   # '{"name": "alice", "age": 25}'
  • json.dump(obj, file):将 python 对象直接写入文件对象,无返回值。
with open("data.json", "w") as f:
    json.dump(data, f)

2. 反序列化(json → python)

  • json.loads(s):将 json 字符串解析为 python 对象。
json_str = '{"name": "bob", "score": 92.5}'
obj = json.loads(json_str)
print(obj["name"])   # bob
  • json.load(file):从打开的文件对象中读取 json 并转换为 python 对象。
with open("data.json", "r") as f:
    data = json.load(f)

3. 数据类型转换对照表

pythonjson
dictobject
list, tuplearray
strstring
int, floatnumber
truetrue
falsefalse
nonenull

注意:元组在序列化时会转为 json 数组,反序列化回来变成列表。

小结

本文整理的五大模块是 python 日常开发中的高频工具:

  • 日志:标准 logging 与更友好的 loguru,帮助追踪程序状态。
  • 随机数random.randintrandom.choicerandom.sample 满足随机需求。
  • 时间time.time 获取时间戳,time.sleep 控制节奏。
  • 系统交互os 模块处理文件目录操作与系统命令执行。
  • 数据序列化json 模块实现 python 与 json 的无缝转换。

建议在实际项目中多加练习,遇到陌生函数时可以查阅官方文档或使用 help() 查看详细说明。掌握这些模块,你的 python 开发效率会再上一个台阶。

以上就是python常用内置模块日志、随机数、时间、os与json详解的详细内容,更多关于python常用内置模块的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com