【Python语言基础】21、Python标准库
文章目录
- 1. 标准库
- 1.1 标准库构成及特点
- 1.2 常见分类和模块
- 1.3 标准库使用
1. 标准库
Python 标准库就像是 Python 自带的 “百宝箱”,里面装了各种各样已经写好的工具,你在编程的时候可以直接拿来用,不用自己再费劲去编写。
-
什么是标准库
Python标准库是Python安装包自带的一系列模块和包的集合。当安装好Python,这个“百宝箱”就已经安装完成,无需额外下载其它东西。这些工具涵盖不同的功能领域,比如文件操作、网络通信、数据处理等。 -
1.2 标准库作用
标准库可以提供现成的功能接口,为开发人员节省大量的时间和精力。
1.1 标准库构成及特点
构成
- Python标准库由众多模块和包组成,这些模块和包按照功能进行分类,方便开发者查找和使用。
特点
- 跨平台性:无论使用时Windows、Linux还是macOS系统,标准库都能正常工作,确保代码就有晾好的可移植性。
- 稳定性: 标准库是Python官方维护的,经过严格测试和优化,很少出现兼容性问题和BUG
- 文档丰富:Python官方文档对标准库的每个模块和函数都有详细的说明和示例,方便开发者学习和使用
1.2 常见分类和模块
- 文件和目录操作
- os 模块
提供了与操作系统进行交互的功能,可用于文件和目录的创建、删除、重命名等操作,还能获取系统环境变量
import os# 获取当前工作目录
current_dir = os.getcwd()
print("当前工作目录:", current_dir)# 创建新目录
new_dir = "test_dir"
if not os.path.exists(new_dir):os.mkdir(new_dir)print(f"已创建目录: {new_dir}")
- shutil 模块
主要用于高级的文件和目录操作,如复制、移动、删除整个目录树等。
import shutil# 复制文件
src_file = "source.txt"
dst_file = "destination.txt"
shutil.copyfile(src_file, dst_file)
print(f"已将 {src_file} 复制到 {dst_file}")
- 数据处理
- json 模块
用于处理 JSON 数据,能将 Python 对象(如字典、列表)转换为 JSON 字符串,也能将 JSON 字符串解析为 Python 对象。
import json# Python 对象转 JSON 字符串
data = {'name': 'John', 'age': 30}
json_str = json.dumps(data)
print("JSON 字符串:", json_str)# JSON 字符串转 Python 对象
parsed_data = json.loads(json_str)
print("解析后的 Python 对象:", parsed_data)# 结果:
JSON 字符串: {"name": "John", "age": 30}
解析后的 Python 对象: {'name': 'John', 'age': 30}***Repl Closed***
- csv 模块
专门用于读写 CSV(逗号分隔值)文件,可方便地处理表格数据。
import csv# 写入 CSV 文件
data = [['Name', 'Age'], ['John', 30], ['Jane', 25]]
with open('data.csv', 'w', newline='') as csvfile:writer = csv.writer(csvfile)writer.writerows(data)
print("已写入 CSV 文件")# 读取 CSV 文件
with open('data.csv', 'r') as csvfile:reader = csv.reader(csvfile)for row in reader:print(row)
- 网络通信
- socket 模块
是实现网络通信的基础模块,可用于创建 TCP 或 UDP 套接字,实现客户端和服务器之间的通信。
import socket# 创建 TCP 套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('localhost', 8888)
server_socket.bind(server_address)
server_socket.listen(1)print("等待客户端连接...")
connection, client_address = server_socket.accept()
try:print(f"连接来自: {client_address}")data = connection.recv(1024)print(f"收到数据: {data.decode('utf-8')}")
finally:connection.close()
- urllib 模块:
提供了访问网页和处理 URL 的功能,可用于下载网页内容、发送 HTTP 请求等。
import urllib.request# 下载网页内容
url = 'https://www.example.com'
with urllib.request.urlopen(url) as response:html = response.read().decode('utf-8')print("网页内容:", html[:100]) # 只打印前 100 个字符
- 日期和时间处理
- datetime 模块:
提供了处理日期和时间的类和函数,可用于日期和时间的计算、格式化等操作。
import datetime# 获取当前日期和时间
now = datetime.datetime.now()
print("当前日期和时间:", now)# 格式化日期和时间
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print("格式化后的日期和时间:", formatted_date)# 结果:
当前日期和时间: 2025-04-15 10:52:53.379670
格式化后的日期和时间: 2025-04-15 10:52:53***Repl Closed***
- 数据计算
- math 模块:
提供了各种数学函数,如三角函数、对数函数、平方根函数等。
import math# 计算平方根
sqrt_result = math.sqrt(16)
print("平方根:", sqrt_result)# 计算正弦值
sin_result = math.sin(math.radians(30))
print("正弦值:", sin_result)# 结果
平方根: 4.0
正弦值: 0.49999999999999994***Repl Closed***
1.3 标准库使用
要使用标准库中的模块,只需在代码中使用 import 语句导入相应的模块。导入方式有以下几种:
- 直接导入整个模块:
使用 import 模块名 语句,导入后通过 模块名.函数名 或 模块名.类名 的方式使用模块中的功能。
import mathresult = math.cos(math.pi)
print(result)# 结果
-1.0***Repl Closed***
- 导入模块中的特定函数或类:
使用 from 模块名 import 函数名/类名 语句,导入后可直接使用函数或类,无需加模块名前缀。
from math import sin, piresult = sin(pi / 2)
print(result)# 结果:
1.0***Repl Closed***
- 导入模块中的所有功能:
使用 from 模块名 import * 语句,但这种方式不推荐,因为可能会导致命名冲突
from math import *result = tan(pi / 4)
print(result)# 结果:
1.0***Repl Closed***
Python 标准库是一个功能强大、内容丰富的资源,熟练掌握和使用标准库能让你的编程工作更加高效和便捷。