Bootstrap

Python最常用的10个内置模块汇总

目录

1. os 模块

2. sys 模块

3. datetime 模块

4. random 模块

5. re 模块

6. json 模块

7. collections 模块

8. itertools 模块

9. functools 模块

10. subprocess 模块

总结



Python标准库包含了一组丰富的内置模块,这些模块提供了广泛的功能,使开发者可以轻松实现各种常见任务,而无需依赖外部库.本文将介绍一些常用的Python内置模块,并通过示例展示它们的具体用法.

1. os 模块

os模块提供了与操作系统进行交互的功能,例如文件和目录操作.

示例:

import os

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

# 列出目录中的文件和子目录
files = os.listdir(current_dir)
print(f"目录内容: {files}")

# 创建新目录
os.mkdir("new_directory")

# 删除目录
os.rmdir("new_directory")

2. sys 模块

sys 模块提供了与Python解释器进行交互的功能,例如命令行参数和标准输入输出.

示例:

import sys

# 获取命令行参数
args = sys.argv
print(f"命令行参数: {args}")

# 退出程序并返回状态码
sys.exit(0)

3. datetime 模块

datetime 模块提供了处理日期和时间的功能.

示例:

from datetime import datetime, timedelta

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

# 计算7天后的日期
future_date = now + timedelta(days=7)
print(f"7天后的日期: {future_date}")

# 格式化日期和时间
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(f"格式化日期和时间: {formatted_date}")

4. random 模块

random 模块提供了生成随机数的功能.

示例:

import random

# 生成一个0到1之间的随机浮点数
random_float = random.random()
print(f"随机浮点数: {random_float}")

# 生成一个指定范围内的随机整数
random_int = random.randint(1, 10)
print(f"随机整数: {random_int}")

# 从列表中随机选择一个元素
elements = ['a', 'b', 'c', 'd']
random_element = random.choice(elements)
print(f"随机选择的元素: {random_element}")

5. re 模块

re 模块提供了正则表达式的功能,用于字符串的匹配和操作.

示例:

import re

# 定义一个正则表达式模式
pattern = r'\d+'

# 在字符串中搜索所有匹配项
matches = re.findall(pattern, 'abc123def456')
print(f"匹配结果: {matches}")

# 替换字符串中的匹配项
replaced_string = re.sub(pattern, '#', 'abc123def456')
print(f"替换结果: {replaced_string}")

6. json 模块

json 模块提供了处理JSON数据的功能.

示例:

import json

# 将Python对象编码为JSON字符串
data = {'name': 'Alice', 'age': 25}
json_str = json.dumps(data)
print(f"JSON字符串: {json_str}")

# 将JSON字符串解码为Python对象
decoded_data = json.loads(json_str)
print(f"解码后的数据: {decoded_data}")

7. collections 模块

collections 模块提供了几种额外的数据结构,例如namedtuple、deque、Counter等.

示例:

from collections import namedtuple, deque, Counter

# 使用namedtuple创建一个简单类
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(f"Point: {p.x}, {p.y}")

# 使用deque创建双端队列
d = deque([1, 2, 3])
d.appendleft(0)
print(f"Deque: {d}")

# 使用Counter计数
c = Counter('abracadabra')
print(f"Counter: {c}")

8. itertools 模块

itertools 模块提供了一组用于操作迭代器的函数,非常适用于数据的组合、排列和生成.

示例:

import itertools

# 创建一个无限的整数迭代器
counter = itertools.count(start=1, step=1)
print(next(counter))  # 1
print(next(counter))  # 2

# 生成所有可能的两两组合
combinations = itertools.combinations('ABCD', 2)
for combo in combinations:
    print(combo)

# 生成一个循环迭代器
cycle = itertools.cycle('AB')
print(next(cycle))  # A
print(next(cycle))  # B
print(next(cycle))  # A

9. functools 模块

functools 模块提供了一组高阶函数,主要用于函数的操作和操作函数的返回值.

示例:

import functools

# 使用lru_cache装饰器进行函数缓存
@functools.lru_cache(maxsize=None)
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

print(factorial(5))  # 120

# 使用partial创建一个新的函数
def add(a, b):
    return a + b

add_five = functools.partial(add, 5)
print(add_five(10))  # 15

10. subprocess 模块

subprocess 模块允许你生成子进程、连接它们的输入/输出/错误管道,并获取它们的返回码.

示例:

import subprocess

# 执行一个系统命令并获取输出
result = subprocess.run(['echo', 'Hello, World!'], capture_output=True, text=True)
print(result.stdout)  # Hello, World!

# 执行一个带有错误的命令
result = subprocess.run(['ls', 'non_existent_file'], capture_output=True, text=True)
print(result.stderr)  # ls: cannot access 'non_existent_file': No such file or directory

总结

Python标准库提供了一组强大且多样化的内置模块,能够帮助开发者高效地完成各种任务.从操作系统交互、命令行参数处理、日期时间操作、随机数生成、正则表达式匹配到JSON数据处理和高级数据结构,这些模块覆盖了开发中的常见需求.掌握这些内置模块,可以大大提高编程效率和代码的可读性.

;