当前位置: 首页 > news >正文

【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 常见分类和模块

  1. 文件和目录操作
  • 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}")
  1. 数据处理
  • 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)
  1. 网络通信
  • 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 个字符
  1. 日期和时间处理
  • 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***
  1. 数据计算
  • 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 标准库是一个功能强大、内容丰富的资源,熟练掌握和使用标准库能让你的编程工作更加高效和便捷。

相关文章:

  • 黑马点评:Redis消息队列【学习笔记】
  • MyBatis-Plus 详解:快速上手到深入理解
  • 探索大语言模型(LLM):目标、原理、挑战与解决方案
  • 如何用AI辅助数据分析及工具推荐
  • 第七章:7.4写一个函数,使给定的一个3*3的二维整型数组转置,即行列互换。
  • 09-RocketMQ 深度解析:从原理到实战,构建可靠消息驱动微服务
  • 如何用AI辅助软件产品原型设计及工具推荐
  • 【野火模型】利用深度神经网络替代 ELMv1 野火参数化:机制、实现与性能评估
  • ArcGIS Desktop使用入门(四)——9版本与10版本区别
  • 基于Vue Node.js的电影售票网站的设计与实现(源码+lw+部署文档+讲解),源码可白嫖!
  • 人工智能之数学基础:特征值分解与奇异值分解的区别分析
  • Android ImageButton 使用详解
  • Spark宽窄依赖与Join优化:协同划分与非协同划分的底层逻辑
  • 解码未来:大语言模型训练与推理的双螺旋进化之路
  • 安卓自定义build的apk文件名
  • 【C++动态规划 组合数学】3193. 统计逆序对的数目|2266
  • 精通MySQL:快速获取数据表字段提高开发效率
  • 二级建造师备考攻略:高效学习与题库推荐
  • WPF View 与ViewModel注入对象
  • MySQL MVCC工作流程详解
  • 学院网站的系统建设方式/磁力猫搜索引擎入口官网
  • 做安卓icon图标下载网站/南京网络优化公司有哪些
  • 分类信息多城市网站/台州关键词优化平台
  • 建设美妆企业网站/营销软文范例大全
  • 织梦网站免费模板/百度知道合伙人
  • 做美食类网站分析/alexa全球网站排名分析