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

 更新时间:2026年05月12日 09:35:16   作者:毋语天  
本文介绍了Python开发中常用的五大模块:日志、随机数、时间、系统文件操作及JSON数据处理,详细讲解了各模块的的常见函数及其应用场景,需要的朋友可以参考下

在 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常用内置模块的资料请关注脚本之家其它相关文章!

相关文章

  • python利用paramiko连接远程服务器执行命令的方法

    python利用paramiko连接远程服务器执行命令的方法

    下面小编就为大家带来一篇python利用paramiko连接远程服务器执行命令的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Python使用argcomplete模块实现自动补全

    Python使用argcomplete模块实现自动补全

    argcomplete 是一个强大的Python库,可以大幅改善命令行应用程序的用户体验,本文主要介绍了argcomplete模块的相关用法,感兴趣的小伙伴可以了解下
    2023-11-11
  • python粘包问题及socket套接字编程详解

    python粘包问题及socket套接字编程详解

    这篇文章主要介绍了python粘包问题及socket套接字编程详解,之所以出现粘包,是因为两个数据非常小,然后间隔时间又短,或数据太大,一次取不完,下一次还会取这个大数据,需要的朋友可以参考下
    2019-06-06
  • 详解Python中for循环的使用方法

    详解Python中for循环的使用方法

    这篇文章主要介绍了Python中for循环的使用方法,是Python入门中的基础知识,需要的朋友可以参考下
    2015-05-05
  • Python2.7读取PDF文件的方法示例

    Python2.7读取PDF文件的方法示例

    这篇文章主要介绍了Python2.7读取PDF文件的方法,结合实例形式分析了Python2.7基于PDFMiner模块实现针对pdf文件的读取功能相关操作技巧,需要的朋友可以参考下
    2017-07-07
  • Python中lambda排序的六种方法

    Python中lambda排序的六种方法

    本文主要介绍了Python中使用lambda函数进行排序的六种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • 使用python对文件中的单词进行提取的方法示例

    使用python对文件中的单词进行提取的方法示例

    这篇文章主要介绍了使用python对文件中的单词进行提取的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • python读取文本中的坐标方法

    python读取文本中的坐标方法

    今天小编就为大家分享一篇python读取文本中的坐标方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Django报错TemplateDoesNotExist的问题及解决

    Django报错TemplateDoesNotExist的问题及解决

    这篇文章主要介绍了Django报错TemplateDoesNotExist的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • python os模块常用的29种方法使用详解

    python os模块常用的29种方法使用详解

    这篇文章主要介绍了python os模块常用的29种方法使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06

最新评论