Python常用内置库介绍


包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!

Python内置库无需额外安装,开箱即用,能够帮助我们高效便捷地完成各种编程任务。本文将带你深入了解Python中一些最常用、最实用的内置库,让你对Python的强大之处有更深刻的认识,并能更好地运用它们来解决实际问题。在这里插入图片描述

一、 核心工具箱:基础操作与数据处理

os 模块:操作系统接口
  • os 模块提供了与操作系统交互的各种函数,让你能够轻松地进行文件和目录操作、进程管理、环境变量访问等。
import os
# 获取当前工作目录
current_dir = os.getcwd()
print(f"当前工作目录: {current_dir}")

# 创建目录
os.makedirs("new_directory", exist_ok=True) # exist_ok=True 表示目录已存在也不会报错

# 列出目录下的文件和子目录
files_and_dirs = os.listdir(current_dir)
print(f"当前目录下文件和目录: {files_and_dirs}")

# 判断路径是否存在
path_exists = os.path.exists("new_directory")
print(f"new_directory 路径是否存在: {path_exists}")

# 删除目录 (只能删除空目录)
os.rmdir("new_directory")
sys 模块:系统相关信息
  • sys 模块提供了访问和控制Python运行时环境的功能,例如获取命令行参数、标准输入输出、Python解释器版本等。
import sys
# 获取命令行参数 (sys.argv[0] 是脚本自身文件名)
print(f"命令行参数: {sys.argv}")

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

# 获取操作系统平台信息
print(f"操作系统平台: {sys.platform}")

# 退出程序
# sys.exit(0) # 正常退出
# sys.exit(1) # 异常退出
常用功能: 命令行参数获取、标准输入/输出重定向、Python解释器版本信息、操作系统平台信息、程序退出等。
datetime 模块:日期和时间处理
  • datetime 模块提供了处理日期和时间的类,例如 date (日期)、time (时间)、datetime (日期时间)、timedelta (时间间隔) 等。
import datetime
# 获取当前日期和时间
now = datetime.datetime.now()
print(f"当前日期和时间: {now}")

# 获取当前日期
today = datetime.date.today()
print(f"当前日期: {today}")

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

# 创建指定日期时间对象
specific_datetime = datetime.datetime(2023, 10, 26, 10, 30, 0)
print(f"指定日期时间: {specific_datetime}")

# 计算时间间隔
time_delta = datetime.timedelta(days=7) # 7天的时间间隔
future_date = today + time_delta
print(f"7天后的日期: {future_date}")
常用功能: 日期和时间对象的创建、格式化、解析、计算、比较等。
time 模块:时间相关功能
  • time 模块提供了与时间相关的各种函数,例如获取时间戳、暂停程序执行、时间格式转换等。
import time
# 获取当前时间戳 (秒数,从1970年1月1日开始)
timestamp = time.time()
print(f"当前时间戳: {timestamp}")

# 暂停程序执行 (秒)
time.sleep(2) # 暂停2秒
print("程序暂停2秒后继续执行")

# 将时间戳转换为本地时间元组
local_time_tuple = time.localtime(timestamp)
print(f"本地时间元组: {local_time_tuple}")

# 格式化时间元组为字符串
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time_tuple)
print(f"格式化后的时间字符串: {formatted_time}")
常用功能: 获取时间戳、暂停程序执行、时间格式转换 (时间戳、时间元组、字符串之间转换)、计时等。
math 模块:数学运算
  • math 模块提供了各种数学函数,例如三角函数、指数函数、对数函数、常数 (π, e) 等。
import math
# 计算平方根
sqrt_value = math.sqrt(16)
print(f"16的平方根: {sqrt_value}")

# 计算正弦值 (弧度)
sin_value = math.sin(math.pi / 2) # π/2 弧度 = 90度
print(f"sin(π/2): {sin_value}")

# 计算对数 (自然对数)
log_value = math.log(math.e)
print(f"log(e): {log_value}")

# 常数 π 和 e
print(f"π: {math.pi}")
print(f"e: {math.e}")
常用功能: 数学运算 (三角函数、指数函数、对数函数、幂运算、取整等)、数学常数 (π, e) 等。
random 模块:随机数生成
  • random 模块提供了各种随机数生成函数,可以生成整数、浮点数、序列随机元素等。
import random
# 生成 0 到 1 之间的随机浮点数
random_float = random.random()
print(f"随机浮点数 (0-1): {random_float}")

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

# 从序列中随机选择一个元素
my_list = [1, 2, 3, 4, 5]
random_element = random.choice(my_list)
print(f"随机选择的元素: {random_element}")

# 将序列随机打乱顺序
random.shuffle(my_list)
print(f"打乱顺序后的列表: {my_list}")
常用功能: 生成随机数 (整数、浮点数)、序列随机元素选择、序列随机打乱顺序等。
collections 模块:扩展数据类型
  • collections 模块提供了一些除了基本数据类型 (list, tuple, dict, set) 之外的、更高级的数据类型,例如 Counter (计数器)、defaultdict (默认字典)、deque (双端队列) 等。
from collections 
import Counter, defaultdict, deque
# Counter: 计数器,统计元素出现的次数
word_list = ["apple", "banana", "apple", "orange", "banana", "apple"]
word_counts = Counter(word_list)
print(f"单词计数: {word_counts}") # Counter({'apple': 3, 'banana': 2, 'orange': 1})

# defaultdict: 默认字典,访问不存在的键时返回默认值
my_default_dict = defaultdict(int) # 默认值类型为 int,即 0
print(f"默认字典访问不存在的键: {my_default_dict['key1']}") # 0
my_default_dict['key2'] += 1
print(f"默认字典赋值后: {my_default_dict}") # defaultdict(<class 'int'>, {'key2': 1})

# deque: 双端队列,支持高效的头尾元素添加和删除
my_deque = deque([1, 2, 3])
my_deque.append(4) # 尾部添加
my_deque.appendleft(0) # 头部添加
print(f"双端队列添加元素后: {my_deque}") # deque([0, 1, 2, 3, 4])
my_deque.pop() # 尾部删除
my_deque.popleft() # 头部删除
print(f"双端队列删除元素后: {my_deque}") # deque([1, 2, 3])
常用数据类型: Counter, defaultdict, deque, namedtuple (命名元组), OrderedDict (有序字典) 等。
itertools 模块:迭代器工具
  • itertools 模块提供了一系列用于创建和操作迭代器的函数,可以高效地处理序列数据,特别是在处理大数据集时非常有用。
import itertools
# 无限计数器
counter = itertools.count(start=1, step=2) # 从 1 开始,步长为 2
for _ in range(5):
    print(next(counter)) # 1, 3, 5, 7, 9

# 循环迭代器
cycle_iterator = itertools.cycle(["A", "B", "C"])
for _ in range(5):
    print(next(cycle_iterator)) # A, B, C, A, B

# 组合迭代器
combinations_iterator = itertools.combinations([1, 2, 3], 2) # 从 [1, 2, 3] 中选取 2 个元素的组合
for combination in combinations_iterator:
    print(combination) # (1, 2), (1, 3), (2, 3)

# 链式迭代器
chain_iterator = itertools.chain([1, 2], [3, 4], [5, 6])
for item in chain_iterator:
    print(item) # 1, 2, 3, 4, 5, 6
常用迭代器: count, cycle, repeat, chain, combinations, permutations, product 等。
functools 模块:高阶函数工具
  • functools 模块提供了一些用于操作函数的高阶函数,例如 partial (偏函数)、wraps (装饰器辅助函数)、lru_cache (缓存装饰器) 等。
import functools
# partial: 偏函数,固定函数的部分参数
def power(base, exponent):
    return base ** exponent

square = functools.partial(power, exponent=2) # 固定 exponent=2,创建平方函数
cube = functools.partial(power, exponent=3)   # 固定 exponent=3,创建立方函数

print(f"平方(3): {square(3)}") # 9
print(f"立方(3): {cube(3)}")   # 27

# lru_cache: 缓存装饰器,缓存函数结果,提高性能 (适用于计算密集型且重复调用的函数)
@functools.lru_cache(maxsize=None) # maxsize=None 表示无限缓存
def fibonacci(n):
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)
print(f"斐波那契数列(10): {fibonacci(10)}") # 使用缓存加速计算
常用高阶函数: partial, wraps, lru_cache, reduce (在 Python 3 中已移至 functools 模块) 等.

二、 数据交换与格式化

json 模块:JSON 数据处理
  • json 模块用于处理 JSON (JavaScript Object Notation) 数据格式,JSON 是一种轻量级的数据交换格式,常用于 Web API 和数据存储。
import json
# Python 字典转换为 JSON 字符串
python_dict = {"name": "Alice", "age": 30, "city": "New York"}
json_string = json.dumps(python_dict)
print(f"Python字典转JSON字符串: {json_string}")

# JSON 字符串转换为 Python 字典
json_data = '{"name": "Bob", "age": 25, "city": "London"}'
python_dict_from_json = json.loads(json_data)
print(f"JSON字符串转Python字典: {python_dict_from_json}")

# 将 Python 对象写入 JSON 文件
with open("data.json", "w") as f:
    json.dump(python_dict, f)

# 从 JSON 文件读取 Python 对象
with open("data.json", "r") as f:
    data_from_json = json.load(f)
    print(f"从JSON文件读取数据: {data_from_json}")
常用功能: JSON 字符串和 Python 对象 (字典、列表) 之间的相互转换、JSON 文件读写。
csv 模块:CSV 文件处理
  • csv 模块用于处理 CSV (Comma Separated Values) 文件,CSV 是一种常用的文本格式,用于存储表格数据。
import csv
# 写入 CSV 文件
data = [
    ["Name", "Age", "City"],
    ["Alice", 30, "New York"],
    ["Bob", 25, "London"]
]
with open("data.csv", "w", newline="") as f: # newline="" 防止出现空行
    csv_writer = csv.writer(f)
    csv_writer.writerows(data)

# 读取 CSV 文件
with open("data.csv", "r") as f:
    csv_reader = csv.reader(f)
    for row in csv_reader:
        print(row)
常用功能: CSV 文件读写、不同分隔符支持、字典形式的 CSV 数据读写等。
re 模块:正则表达式
  • re 模块提供了正则表达式操作,用于进行字符串匹配、查找、替换等高级文本处理。
import re
text = "Hello, world! My email is example@domain.com."

# 查找匹配的字符串 (查找邮箱地址)
email_pattern = r"\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}\b" # 邮箱地址正则表达式
email_match = re.search(email_pattern, text)
if email_match:
    print(f"找到邮箱地址: {email_match.group()}")

# 查找所有匹配的字符串 (查找所有单词)
word_pattern = r"\b\w+\b" # 单词正则表达式
word_matches = re.findall(word_pattern, text)
print(f"所有单词: {word_matches}")

# 替换字符串 (将邮箱地址替换为 [邮箱地址已屏蔽])
replaced_text = re.sub(email_pattern, "[邮箱地址已屏蔽]", text)
print(f"替换后的文本: {replaced_text}")
常用功能: 字符串匹配 (search, match, findall)、字符串替换 (sub, subn)、字符串分割 (split) 等。

三、 网络与互联网

urllib 模块:URL 处理
  • urllib 模块提供了一系列用于处理 URL (Uniform Resource Locator) 的函数,可以进行 URL 解析、请求网页、下载文件等。
import urllib.request
import urllib.parse

# URL 解析
url = "https://www.example.com/path?query=string#fragment"
parsed_url = urllib.parse.urlparse(url)
print(f"解析后的URL: {parsed_url}")

# 请求网页
try:
    response = urllib.request.urlopen("https://www.example.com")
    html_content = response.read().decode("utf-8") # 读取网页内容并解码
    print(f"网页内容 (前100字符): {html_content[:100]}...")
except urllib.error.URLError as e:
    print(f"请求网页失败: {e}")

# 下载文件 (例如图片)
image_url = "https://www.python.org/static/community_logos/python-logo-master-v3-TM.png"
try:
    urllib.request.urlretrieve(image_url, "python_logo.png") # 下载并保存为 python_logo.png
    print("图片下载完成: python_logo.png")
except urllib.error.URLError as e:
    print(f"图片下载失败: {e}")
常用子模块: urllib.request (发送 HTTP 请求), urllib.parse (URL 解析), urllib.error (异常处理) 等。

四、 其他常用模块

除了以上介绍的模块,Python 还有许多其他有用的内置库,例如:
  • pathlib 模块 (Python 3.4+): 更现代、面向对象的路径操作模块,比 os.path 更易用。
  • shutil 模块: 高级文件操作模块,例如文件和目录的复制、移动、压缩等。
  • zipfile 模块: ZIP 文件压缩和解压缩。
  • gzip 模块: gzip 压缩和解压缩。
  • argparse 模块: 命令行参数解析,用于编写命令行工具。
  • logging 模块: 日志记录,用于程序调试和错误追踪。
  • unittest 模块: 单元测试框架,用于编写和运行测试用例。

结语

Python 的内置库是其强大功能的基石,它们涵盖了各种编程领域,能够极大地提高我们的开发效率。

图片

总结

  • 最后希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!

文末福利

  • 最后这里免费分享给大家一份Python全套学习资料,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。
包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】领取!
  • ① Python所有方向的学习路线图,清楚各个方向要学什么东西
  • ② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
  • ③ 100多个Python实战案例,学习不再是只会理论
  • ④ 华为出品独家Python漫画教程,手机也能学习

可以扫描下方二维码领取【保证100%免费在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值