Python常用内置库介绍

365账户受到限制怎么办 🗓 2025-10-31 19:45:21 ✍ admin 👁 1762 👍 796
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(, {'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%免费】

相关推荐

adjust的意思
365账户受到限制怎么办

adjust的意思

🗓 08-21 👁 6290
怎样判断五官是否立体2023-01-18 1260 阅读
世界杯365软件

怎样判断五官是否立体2023-01-18 1260 阅读

🗓 08-31 👁 5045
汽车之家
世界杯365软件

汽车之家

🗓 08-04 👁 9578