摘要

本文系统讲解 Python 内置五大高频模块:模块基础概念、collections 集合扩展模块、time 时间处理模块、random 随机模块、os 操作系统交互模块、sys 解释器模块,附带可运行示例代码、参数说明表格,是 Python 日常开发高频工具库,适合新手收藏查阅,所有代码可直接复制运行。

一、模块基础认识

1. 什么是模块

代码层级从小到大:单行代码 < 代码语句块 < 函数 / 类(代码块)< 模块 .py结尾的 Python 文件就是一个模块,分为:

  1. 内置模块:Python 自带,无需安装(collections、time、random、os、sys 等)

  2. 第三方模块:需要通过 pip 额外安装

2. 模块导入两种语法

# 方式1:导入整个模块
import 模块名
# 方式2:从模块导入指定功能
from 模块名 import 功能1,功能2

二、collections 模块(扩展集合工具)

补充 Python 基础数据类型之外的集合工具类,常用:Counter/deque/namedtuple/OrderedDict/defaultdict

工具类作用
Counter计数器,快速统计元素出现次数
deque双向队列,两端高效增删数据
namedtuple命名元组,给元组字段命名
OrderedDict有序字典(Python3.7 + 字典默认有序,低版本专用)
defaultdict默认值字典,key 不存在不报错

2.1 Counter 计数器

from collections import Counter
s = "alex like pig"
# 统计每个字符出现次数
res = Counter(s)
print(res)
# 像字典一样取值
print(res['l'])

2.2 deque 双向队列

前置概念:

  • 栈:先进后出(FILO)

  • 队列:先进先出(FIFO)

from collections import deque
# 创建空双向队列
q = deque()
# 右侧追加
q.append("张开")
q.append("包贝尔")
# 左侧插入
q.appendleft("赵又廷")
q.appendleft("还我高圆圆")
print(q)

# 右侧弹出
print(q.pop())
# 左侧弹出
print(q.popleft())

2.3 namedtuple 命名元组

from collections import namedtuple
# 定义坐标类型:字段x,y
Point = namedtuple("point", ["x", "y"])
# 实例化
p = Point(1, 2)
print(p)
print(p.x, p.y) # 通过属性取值

2.4 OrderedDict 有序字典 & defaultdict 默认字典

from collections import OrderedDict, defaultdict
# 有序字典
od = OrderedDict({'a':'娃哈哈', 'b':'薯条', 'c':'胡辣汤'})
print(od)
​
# 默认值为列表
dd = defaultdict(list)
# key不存在自动创建空列表
print(dd['娃哈哈'])
dd['娃哈哈'].append('饮料')
print(dd)

三、time 时间模块【重点】

Python 时间三种格式:

  1. 时间戳 (timestamp):浮点秒数,1970-01-01 00:00:00 至今总秒数,存数据库用

  2. 结构化时间 (struct_time):拆分年月日时分秒等,时间转换中间载体

  3. 格式化字符串时间:人类可读2025-01-01 12:00:00,前端展示用

常用格式化符号表

符号说明符号说明
%Y4 位年份%m月份 01~12
%d日期 01~31%H24 小时制小时
%M分钟%S秒
%y两位年份%I12 小时制小时

3.1 基础获取时间

import time
# 获取时间戳
stamp = time.time()
print("时间戳:", stamp)
​
# 获取结构化本地时间
struct_t = time.localtime()
print("结构化时间:", struct_t)
​
# 格式化时间字符串
str_t = time.strftime("%Y-%m-%d %H:%M:%S")
print("格式化时间:", str_t)

3.2 时间格式互转(必考)

import time
# 1.时间戳 → 格式化时间
stamp = 1888888888
struct = time.localtime(stamp)
str_date = time.strftime("%Y-%m-%d %H:%M:%S", struct)
print("时间戳转日期:", str_date)
​
# 2.日期字符串 → 时间戳
date_str = "2020-10-01 12:18:12"
struct2 = time.strptime(date_str, "%Y-%m-%d %H:%M:%S")
new_stamp = time.mktime(struct2)
print("日期转时间戳:", new_stamp)

3.3 计算时间差

import time
# 两个时间转时间戳
t1 = time.mktime(time.strptime('2017-09-11 08:30:00','%Y-%m-%d %H:%M:%S'))
t2 = time.mktime(time.strptime('2017-09-12 11:00:00','%Y-%m-%d %H:%M:%S'))
diff = t2 - t1
diff_struct = time.localtime(diff)
print(f'相差:{diff_struct.tm_year-1970}年{diff_struct.tm_mon-1}月{diff_struct.tm_mday-1}天{diff_struct.tm_hour}时{diff_struct.tm_min}分{diff_struct.tm_sec}秒')

四、random 随机模块

生成随机数字、随机取值、打乱序列,验证码、抽奖、洗牌常用

import random
# 0~1随机小数
print(random.random())
# [3,10]之间随机小数
print(random.uniform(3,10))
# [1,10]随机整数
print(random.randint(1,10))
# 步长2,1~10奇数
print(random.randrange(1,10,2))

# 随机选1个元素
print(random.choice([1,'周杰伦',['盖伦','胡辣汤']]))
# 随机选N个元素
print(random.sample([1,'23',[4,5]],2))

# 原地打乱列表
lst = [1,2,3,4,5,6,7,8]
random.shuffle(lst)
print(lst)

五、os 操作系统模块

与操作系统交互:文件夹创建删除、路径处理、文件信息、切换工作目录

5.1 文件夹 / 文件操作

import os
# 创建单级目录
# os.mkdir("test_dir")
# 递归创建多级目录
# os.makedirs("a/b/c")

# 删除空单级目录
# os.rmdir("test_dir")
# 递归删除空目录(空才删)
# os.removedirs("a/b/c")

# 删除文件
# os.remove("test.txt")
# 重命名
# os.rename("old.txt","new.txt")

# 列出目录下所有文件
print(os.listdir("./"))
# 获取当前工作目录
print(os.getcwd())
# 切换工作目录
# os.chdir("./test")
# 获取文件属性信息
print(os.stat("21.pdf"))

5.2 os.path 路径处理(跨平台重点)

import os
path = r"D:/python/demo.txt"
# 获取绝对路径
print(os.path.abspath(path))
# 拆分目录和文件名
print(os.path.split(path))
# 获取目录名
print(os.path.dirname(path))
# 获取文件名
print(os.path.basename(path))

# 路径拼接(自动适配系统分隔符)
new_path = os.path.join("D:\\python","test.txt")
print(new_path)

# 判断是否存在
print(os.path.exists(path))
# 判断是否文件/文件夹
print(os.path.isfile(path))
print(os.path.isdir("./"))
# 获取文件大小(字节)
print(os.path.getsize("21.pdf"))

5.3 系统分隔符属性

import os
print("路径分隔符:",os.sep) # win:\ linux:/
print("环境变量分隔:",os.pathsep) # win:; linux: :
print("系统名称:",os.name) # nt=win posix=linux

六、sys 解释器模块

操作 Python 解释器相关配置、命令行参数、模块搜索路径

import sys
# 命令行参数列表,第一个为脚本路径
print(sys.argv)

# 查看Python版本
print(sys.version)

# 模块导入搜索路径
print(sys.path)

# 操作系统平台
print(sys.platform)

# 退出程序
# sys.exit(0) # 0正常退出,非0异常退出

文末总结

  1. collections:扩展容器,计数、双向队列、命名元组日常高频;

  2. time:牢记「时间戳↔结构化时间↔字符串」双向转换逻辑;

  3. random:随机数、抽样、打乱三个核心用法;

  4. os:文件夹操作 + os.path 路径处理是文件项目必备;

  5. sys:解释器配置、命令行参数、自定义导包路径常用。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐