首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Python 30个常用的基础模块,提升开发效率

Python 30个常用的基础模块,提升开发效率

作者头像
用户11081884
发布2026-07-20 19:01:08
发布2026-07-20 19:01:08
1160
举报
文章被收录于专栏:科技专栏科技专栏

Python内置的常用模块提供了文件操作、数据处理、网络通信、日志记录等基础功能,无需安装即可直接使用。以下是30个最实用的基础模块及其使用方法。

使用场景总结

场景类别

推荐模块

文件操作

os, pathlib, shutil, glob

数据处理

json, csv, pickle, collections

网络编程

socket, urllib

系统工具

argparse, logging, subprocess

数学计算

math, statistics, random

文本处理

re, string

日期时间

datetime, time

数据持久化

sqlite3, configparser

核心系统模块

1. os模块 - 操作系统交互

代码语言:javascript
复制
import os

# 获取当前工作目录
current_dir = os.getcwd()
print(f"当前目录: {current_dir}")

# 检查文件是否存在
if os.path.exists("example.txt"):
    print("文件存在")

# 遍历目录
for item in os.scandir('.'):
    print(f"{item.name} - 目录" if item.is_dir() else f"{item.name} - 文件")

2. sys模块 - 系统参数访问

代码语言:javascript
复制
import sys

# 获取Python版本信息
print(f"Python版本: {sys.version}")

# 查看模块搜索路径
print("模块搜索路径:")
for path in sys.path:
    print(f"  {path}")

# 程序退出
if len(sys.argv) < 2:
    print("缺少参数")
    sys.exit(1)

3. platform模块 - 平台信息

代码语言:javascript
复制
import platform

print(f"操作系统: {platform.system()}")
print(f"系统版本: {platform.release()}")
print(f"处理器架构: {platform.architecture()[0]}")

数据处理模块

4. json模块 - JSON数据处理

代码语言:javascript
复制
import json

# 复杂数据序列化
data = {
    "users": [
        {"name": "张三", "age": 25, "hobbies": ["阅读", "编程"]},
        {"name": "李四", "age": 30, "hobbies": ["音乐", "旅行"]}
    ]
}

# 美化输出
json_str = json.dumps(data, indent=2, ensure_ascii=False)
print(json_str)

# 从文件读取JSON
with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False)

5. csv模块 - CSV文件处理

代码语言:javascript
复制
import csv

# 写入CSV文件
headers = ['姓名', '年龄', '城市']
rows = [
    ['王五', 28, '北京'],
    ['赵六', 35, '上海'],
    ['孙七', 22, '广州']
]

with open('users.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerow(headers)
    writer.writerows(rows)

# 使用DictReader读取
with open('users.csv', 'r', encoding='utf-8') as f:
    reader = csv.DictReader(f)
    for row in reader:
        print(f"{row['姓名']} - {row['年龄']}岁")

6. collections模块 - 高级数据结构

代码语言:javascript
复制
from collections import defaultdict, deque, namedtuple

# 命名元组
Person = namedtuple('Person', ['name', 'age', 'city'])
p1 = Person('张三', 25, '北京')
print(f"{p1.name} 来自 {p1.city}")

# 双端队列
dq = deque([1, 2, 3])
dq.appendleft(0)  # 左侧添加
dq.append(4)      # 右侧添加
print(list(dq))   # [0, 1, 2, 3, 4]

# 带默认值的字典
word_count = defaultdict(int)
text = "hello world hello python world"
for word in text.split():
    word_count[word] += 1
print(dict(word_count))

日期时间模块

7. datetime模块 - 日期时间处理

代码语言:javascript
复制
from datetime import datetime, date, timedelta

# 当前日期时间
now = datetime.now()
print(f"当前时间: {now}")

# 日期计算
today = date.today()
next_week = today + timedelta(days=7)
print(f"今天: {today}, 一周后: {next_week}")

# 格式化输出
formatted = now.strftime("%Y年%m月%d日 %H时%M分%S秒")
print(formatted)

8. time模块 - 时间操作

代码语言:javascript
复制
import time

# 性能测试装饰器
def timer(func):
    def wrapper(*args, **kwargs):
        start = time.perf_counter()
        result = func(*args, **kwargs)
        end = time.perf_counter()
        print(f"{func.__name__} 执行时间: {end-start:.4f}秒")
        return result
    return wrapper

@timer
def slow_function():
    time.sleep(1)
    return "完成"

slow_function()

数学与随机数模块

9. math模块 - 数学运算

代码语言:javascript
复制
import math

# 常用数学计算
print(f"π的值: {math.pi}")
print(f"e的值: {math.e}")
print(f"2的平方根: {math.sqrt(2):.4f}")
print(f"5的阶乘: {math.factorial(5)}")

# 对数计算
print(f"以10为底100的对数: {math.log10(100)}")

10. random模块 - 随机数生成

代码语言:javascript
复制
import random

# 生成随机数据
random_numbers = [random.randint(1, 100) for _ in range(5)]
print(f"随机整数: {random_numbers}")

# 随机抽样
items = ['苹果', '香蕉', '橙子', '葡萄', '芒果']
sample = random.sample(items, 3)
print(f"随机样本: {sample}")

# 打乱顺序
random.shuffle(items)
print(f"打乱后: {items}")

网络通信模块

11. urllib模块 - URL处理

代码语言:javascript
复制
from urllib.request import urlopen, Request
from urllib.parse import urlencode, quote

# 发送HTTP请求
def fetch_url(url):
    req = Request(url, headers={'User-Agent': 'Mozilla/5.0'})
    with urlopen(req) as response:
        content = response.read().decode('utf-8')
        return content[:200]  # 返回前200字符

# URL编码
search_term = "Python编程"
encoded = quote(search_term)
print(f"编码后: {encoded}")

12. socket模块 - 网络通信

代码语言:javascript
复制
import socket

# 创建TCP客户端
def tcp_client(host, port):
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client.settimeout(5)
    
    try:
        client.connect((host, port))
        client.send(b"GET / HTTP/1.1\r\nHost: example.com\r\n\r\n")
        response = client.recv(1024)
        return response.decode('utf-8')
    except socket.timeout:
        return "连接超时"
    finally:
        client.close()

# 获取主机信息
hostname = socket.gethostname()
print(f"主机名: {hostname}")

文件与数据持久化

13. pickle模块 - 对象序列化

代码语言:javascript
复制
import pickle

class User:
    def __init__(self, name, email):
        self.name = name
        self.email = email
    
    def __repr__(self):
        return f"User(name='{self.name}', email='{self.email}')"

# 序列化对象
users = [
    User('张三', 'zhang@example.com'),
    User('李四', 'li@example.com')
]

with open('users.pkl', 'wb') as f:
    pickle.dump(users, f)

# 反序列化
with open('users.pkl', 'rb') as f:
    loaded_users = pickle.load(f)
    print(loaded_users)

14. sqlite3模块 - 数据库操作

代码语言:javascript
复制
import sqlite3

def create_database():
    conn = sqlite3.connect('example.db')
    cursor = conn.cursor()
    
    # 创建表
    cursor.execute('''
        CREATE TABLE IF NOT EXISTS products (
            id INTEGER PRIMARY KEY,
            name TEXT NOT NULL,
            price REAL,
            stock INTEGER
        )
    ''')
    
    # 插入数据
    products = [
        ('笔记本电脑', 5999.99, 10),
        ('智能手机', 3999.50, 25),
        ('平板电脑', 2999.00, 15)
    ]
    
    cursor.executemany('INSERT INTO products (name, price, stock) VALUES (?, ?, ?)', products)
    conn.commit()
    
    # 查询数据
    cursor.execute('SELECT * FROM products WHERE price > 3000')
    for row in cursor.fetchall():
        print(f"产品: {row[1]}, 价格: {row[2]}")
    
    conn.close()

create_database()

文本处理模块

15. re模块 - 正则表达式

代码语言:javascript
复制
import re

text = """
联系人信息:
张三: 138-1234-5678
李四: (021) 6234-5678
王五: +86 139 8765 4321
"""

# 提取手机号码
phone_pattern = r'(\d{3}[-\.\s]??\d{4}[-\.\s]??\d{4}|\(\d{3}\)\s*\d{3}[-\.\s]??\d{4})'
phones = re.findall(phone_pattern, text)
print("找到的电话号码:", phones)

# 邮箱验证
def validate_email(email):
    pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
    return bool(re.match(pattern, email))

print(validate_email("test@example.com"))  # True
print(validate_email("invalid.email"))     # False

16. string模块 - 字符串操作

代码语言:javascript
复制
import string

# 字符串常量
print(f"所有字母: {string.ascii_letters}")
print(f"数字: {string.digits}")
print(f"标点符号: {string.punctuation}")

# 模板字符串
template = string.Template('欢迎 $name 参加 $event 活动!')
message = template.substitute(name='张三', event='Python大会')
print(message)

系统工具模块

17. argparse模块 - 命令行解析

代码语言:javascript
复制
import argparse

def main():
    parser = argparse.ArgumentParser(description='文件处理工具')
    parser.add_argument('input_file', help='输入文件路径')
    parser.add_argument('-o', '--output', help='输出文件路径')
    parser.add_argument('-v', '--verbose', action='store_true', help='详细输出')
    parser.add_argument('--count', type=int, default=1, help='处理次数')
    
    args = parser.parse_args()
    
    if args.verbose:
        print(f"处理文件: {args.input_file}")
        print(f"输出到: {args.output}")
        print(f"处理次数: {args.count}")

if __name__ == "__main__":
    main()

18. logging模块 - 日志记录

代码语言:javascript
复制
import logging

# 配置日志系统
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    handlers=[
        logging.FileHandler('app.log'),
        logging.StreamHandler()
    ]
)

logger = logging.getLogger('my_app')

def process_data(data):
    logger.info(f"开始处理数据,长度: {len(data)}")
    try:
        # 模拟数据处理
        result = len(data) * 2
        logger.debug(f"处理结果: {result}")
        return result
    except Exception as e:
        logger.error(f"处理数据时出错: {e}")
        raise

process_data("测试数据")

其他实用模块

19. hashlib模块 - 哈希算法

代码语言:javascript
复制
import hashlib

def hash_file(filename):
    """计算文件的SHA256哈希值"""
    hash_sha256 = hashlib.sha256()
    with open(filename, "rb") as f:
        for chunk in iter(lambda: f.read(4096), b""):
            hash_sha256.update(chunk)
    return hash_sha256.hexdigest()

def hash_password(password, salt=''):
    """密码哈希"""
    return hashlib.pbkdf2_hmac('sha256', password.encode(), salt.encode(), 100000).hex()

print(f"密码哈希: {hash_password('mypassword', 'salt')}")

20. itertools模块 - 迭代工具

代码语言:javascript
复制
import itertools

# 无限迭代器
counter = itertools.count(start=10, step=2)
print("计数器:", [next(counter) for _ in range(5)])

# 排列组合
letters = ['A', 'B', 'C']
combinations = list(itertools.combinations(letters, 2))
print("组合:", combinations)

# 分组操作
data = [1, 1, 2, 3, 3, 3, 4]
grouped = [(key, list(group)) for key, group in itertools.groupby(data)]
print("分组结果:", grouped)

21. functools - 高阶函数工具

代码语言:javascript
复制
from functools import lru_cache, partial

@lru_cache(maxsize=100)
def fibonacci(n):
    if n < 2:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

22. operator - 运算符函数

代码语言:javascript
复制
from operator import itemgetter, attrgetter

data = [('张三', 25), ('李四', 30), ('王五', 20)]
sorted_data = sorted(data, key=itemgetter(1))

23. glob - 文件路径匹配

代码语言:javascript
复制
import glob

py_files = glob.glob('*.py')
print("Python文件:", py_files)

24. shutil - 高级文件操作

代码语言:javascript
复制
import shutil

# 复制文件树
shutil.copytree('source_dir', 'backup_dir')

25. tempfile - 临时文件管理

代码语言:javascript
复制
import tempfile

with tempfile.NamedTemporaryFile() as tmp:    
tmp.write(b"临时数据")    
print(f"临时文件: {tmp.name}")

26. zipfile - ZIP压缩文件

代码语言:javascript
复制
import zipfile

with zipfile.ZipFile('archive.zip', 'w') as zf:    
zf.write('file1.txt')

27. configparser - 配置文件解析

代码语言:javascript
复制
import configparser

config = configparser.ConfigParser()
config.read('config.ini')

28. pathlib - 面向对象的路径操作

代码语言:javascript
复制
from pathlib import Path

path = Path('example.txt')
print(f"文件扩展名: {path.suffix}")

29. statistics - 统计计算

代码语言:javascript
复制
import statistics

data = [1, 2, 3, 4, 5]
print(f"平均值: {statistics.mean(data)}")

30. weakref - 弱引用

代码语言:javascript
复制
import weakref

class Data:    
pass
obj = Data()
weak_obj = weakref.ref(obj)

Python的基础模块构成了开发的核心工具箱,熟练掌握这些模块能够:

1、提高开发效率 -- 避免重复造轮子;

2、代码更规范 -- 使用标准库保证代码质量;

3、易于维护 -- 标准接口便于团队协作;

4、性能优化 -- 内置模块经过充分优化;

“无他,惟手熟尔”!有需要的用起来!

如果你觉得这篇文章有用,欢迎点赞、转发、收藏、留言、推荐❤!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 使用场景总结
  • 核心系统模块
    • 1. os模块 - 操作系统交互
    • 2. sys模块 - 系统参数访问
    • 3. platform模块 - 平台信息
  • 数据处理模块
    • 4. json模块 - JSON数据处理
    • 5. csv模块 - CSV文件处理
    • 6. collections模块 - 高级数据结构
  • 日期时间模块
    • 7. datetime模块 - 日期时间处理
    • 8. time模块 - 时间操作
  • 数学与随机数模块
    • 9. math模块 - 数学运算
    • 10. random模块 - 随机数生成
  • 网络通信模块
    • 11. urllib模块 - URL处理
    • 12. socket模块 - 网络通信
  • 文件与数据持久化
    • 13. pickle模块 - 对象序列化
    • 14. sqlite3模块 - 数据库操作
  • 文本处理模块
    • 15. re模块 - 正则表达式
    • 16. string模块 - 字符串操作
  • 系统工具模块
    • 17. argparse模块 - 命令行解析
    • 18. logging模块 - 日志记录
  • 其他实用模块
    • 19. hashlib模块 - 哈希算法
    • 20. itertools模块 - 迭代工具
    • 21. functools - 高阶函数工具
    • 22. operator - 运算符函数
    • 23. glob - 文件路径匹配
    • 24. shutil - 高级文件操作
    • 25. tempfile - 临时文件管理
    • 26. zipfile - ZIP压缩文件
    • 27. configparser - 配置文件解析
    • 28. pathlib - 面向对象的路径操作
    • 29. statistics - 统计计算
    • 30. weakref - 弱引用
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档