Python 标准库非常丰富,提供了大量内置模块,覆盖文件操作、数据处理、网络通信、系统交互等场景。以下是常用模块的详细说明及代码示例:
os
模块】处理操作系统相关功能(路径、目录、进程等)。
import os
# 获取当前工作目录
current_dir = os.getcwd()
print("当前目录:", current_dir)
# 创建新目录
os.makedirs("new_folder", exist_ok=True)
# 列出目录内容
files = os.listdir(".")
print("目录内容:", files)
# 路径拼接
file_path = os.path.join(current_dir, "new_folder", "test.txt")
sys
模块】访问与 Python 解释器交互的变量和函数。
import sys
# 获取命令行参数
args = sys.argv
print("命令行参数:", args)
# 退出程序
if len(args) < 2:
sys.exit("缺少参数!")
# 查看 Python 解释器路径
print("Python 路径:", sys.executable)
datetime
模块处理日期和时间。
from datetime import datetime, timedelta
# 当前时间
now = datetime.now()
print("当前时间:", now)
# 格式化时间
formatted = now.strftime("%Y-%m-%d %H:%M:%S")
print("格式化时间:", formatted)
# 时间计算
tomorrow = now + timedelta(days=1)
print("明天此时:", tomorrow)
json
模块JSON 数据的编码与解码。
"""
将 数据写入到 json文件中:
1. 导入json模块;
2. 使用with open 工具
with open('json文件', 'w/r/b', encoding='utf-8') as f:
json.dump({'name':'悟空', 'age':18, 'address':'西天'}, f, ensure_ascii=False)
with
open
w/r/b => w write 写, r read 读, b 二进制 binary system
as f 取别名 f
ensure_ascii=False 中文显示汉字
"""
import json
with open('字典转化测试玩玩.json', 'w', encoding='utf-8') as f:
json.dump({'name':'悟空', 'age':18, 'address':'西天'}, f, ensure_ascii=False)
import json
#创建一个JSON串
json_str = ('{"name":"zhangsan", "age":255, "address":"北京", "wage":"九齿钉耙", "sex":"男", "hobby":["打球", "打豆豆"], "is_married":true}')
print(json_str)
#转成字典
my_dict = json.loads(json_str)
print(my_dict)
# 从 JSON 文件加载数据
with open("data.json", "w") as f:
json.dump(data, f) # 写入文件
with open("data.json", "r") as f:
loaded_data = json.load(f)
print("从文件加载:", loaded_data)
"""
从json文件中读取数据,并转化成字典
1. 导入json工具包
2. 转化: with open( 'json文件', 'r', encoding='utf') as jsonStr
json.load(jsonStr)
"""
import json
with open('字典转化测试玩玩.json', 'r', encoding='utf-8') as jsonStr:
python_obj = json.load(jsonStr)
print(python_obj)
print(type(python_obj))
re
模块**字符串的模式匹配与替换。
import re
text = "联系方式:电话 123-4567-8901,邮箱 [email protected]"
# 查找电话号码
phone_pattern = r"\d{3}-\d{4}-\d{4}"
phone_match = re.search(phone_pattern, text)
if phone_match:
print("找到电话:", phone_match.group())
# 提取所有邮箱
email_pattern = r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b"
emails = re.findall(email_pattern, text)
print("所有邮箱:", emails)
math
模块**数学函数和常量。
import math
# 计算平方根
sqrt_val = math.sqrt(25)
print("平方根:", sqrt_val) # 5.0
# 三角函数
angle = math.radians(60) # 角度转弧度
sin_val = math.sin(angle)
print("sin(60°):", sin_val) # ≈0.866
# 常量
print("圆周率:", math.pi) # 3.141592653589793
print("自然常数 e:", math.e) # 2.718281828459045
random
模块生成伪随机数。
import random
# 生成随机整数
rand_int = random.randint(1, 100)
print("随机整数:", rand_int)
# 从列表中随机选择
colors = ["red", "green", "blue"]
rand_color = random.choice(colors)
print("随机颜色:", rand_color)
# 打乱列表顺序
random.shuffle(colors)
print("打乱后的列表:", colors)
collections
模块提供高效的数据结构。
from collections import defaultdict, Counter
# defaultdict(默认字典)
word_counts = defaultdict(int)
words = ["apple", "banana", "apple", "orange"]
for word in words:
word_counts[word] += 1
print("单词计数:", word_counts) # {'apple': 2, 'banana': 1, 'orange': 1}
# Counter(计数器)
counter = Counter(words)
print("出现次数最多的元素:", counter.most_common(1)) # [('apple', 2)]
argparse
模块解析命令行参数。
import argparse
# 创建解析器
parser = argparse.ArgumentParser(description="示例程序")
parser.add_argument("-n", "--name", required=True, help="用户名称")
parser.add_argument("-a", "--age", type=int, default=20, help="用户年龄")
# 解析参数
args = parser.parse_args()
print(f"你好,{args.name}!你今年 {args.age} 岁。")
运行命令示例:
python script.py -n Alice -a 30
urllib
模块处理 HTTP 请求。
from urllib import request
# 发送 GET 请求
url = "https://www.example.com"
response = request.urlopen(url)
html = response.read().decode("utf-8")
print("网页内容前 100 字符:", html[:100])
zipfile
模块读写 ZIP 压缩文件。
import zipfile
# 创建 ZIP 文件
with zipfile.ZipFile("archive.zip", "w") as zipf:
zipf.write("data.json") # 将文件添加到压缩包
# 解压 ZIP 文件
with zipfile.ZipFile("archive.zip", "r") as zipf:
zipf.extractall("extracted_folder")
模块名 | 用途 |
---|---|
logging |
日志记录(记录程序运行信息) |
csv |
CSV 文件读写 |
sqlite3 |
SQLite 数据库操作 |
unittest |
单元测试框架 |
threading |
多线程编程 |
multiprocessing |
多进程编程 |
hashlib |
哈希算法(如 MD5、SHA256) |
Python 的标准库几乎覆盖了所有基础需求,建议优先使用这些内置模块。对于更复杂的需求(如科学计算、图形界面等),可结合第三方库(如 NumPy
、Pandas
、PyQt
)。查看官方文档获取完整模块列表:Python Standard Library。
后记:后面遇到不同的、认知上有偏差会继续更新此篇。
(望各位潘安、各位子健/各位彦祖、于晏不吝赐教!多多指正!)