Python基础:标准库概览

news2025/2/24 6:51:50

在这里插入图片描述

1. 标准库介绍

  Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了多个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O,此外还有大量以 Python 编写的模块,提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计,通过将特定平台功能抽象化为平台中立的 API 来鼓励和加强 Python 程序的可移植性。
  Windows 版本的 Python 安装程序通常包含整个标准库,往往还包含许多额外组件。对于类 Unix 操作系统,Python 通常会分成一系列的软件包,因此可能需要使用操作系统所提供的包管理工具来获取部分或全部可选组件。
  在标准库以外,还存在成千上万并且不断增加的其他组件集(从单独的程序和模块到软件包以及完整的应用程序开发框架),这些组件集可以从Python 包索引 https://pypi.org 获取。

2. 常见的一些标准库

  下面的表格罗列了一些常用的模块,但还只是标准库的很少的一部分,具体使用需要根据需求来定。

模块名称描述功能和示例
math数学运算函数提供基本的数学运算,如三角函数、对数等。例如:math.sin(90) 返回正弦值 1.0。
random生成伪随机数生成随机数,可用于模拟随机事件。例如:random.randint(1, 10) 生成1到10之间的随机整数。
os操作系统功能提供与操作系统交互的功能,如文件和目录操作。例如:os.listdir('.') 返回当前目录下的文件列表。
sys提供 Python 解释器的变量和函数提供访问和操作 Python 解释器的变量和功能。例如:sys.argv 包含命令行参数的列表。
datetime处理日期和时间提供处理日期和时间的类和函数。例如:datetime.now() 返回当前日期和时间。
time处理时间和时间戳提供处理时间和时间戳的函数。例如:time.sleep(2) 暂停程序执行 2 秒。
calendar处理日期和时间的日历函数提供处理日期和时间的日历功能。例如:calendar.isleap(2023) 判断2023年是否为闰年。
collections高性能容器数据类型提供额外的数据类型,如命名元组、计数器等。例如:collections.Counter([1, 2, 1, 3, 2, 4]) 统计元素出现次数。
itertools提供用于操作迭代器的函数提供迭代器操作的工具函数。例如:itertools.product('AB', repeat=2) 返回笛卡尔积。
json处理 JSON 数据格式提供 JSON 数据的编码和解码功能。例如:json.dumps({"name": "John", "age": 30}, indent=2) 将字典转换为美观的 JSON 字符串。
re正则表达式操作提供正则表达式的功能,用于模式匹配。例如:re.search(r'\d+', 'Age: 30') 匹配字符串中的数字。
urllib处理 URL提供处理 URL 的模块,包括打开、读取、解析 URL。例如:urllib.request.urlopen('https://www.example.com') 打开一个 URL。
http提供基本的 HTTP 服务器和客户端功能提供创建简单 HTTP 服务器和客户端的功能。例如:http.server.SimpleHTTPRequestHandler 创建一个简单的 HTTP 服务器。
socket提供套接字编程的接口提供网络编程的功能,包括创建套接字、发送和接收数据。例如:创建一个服务器套接字。
email处理电子邮件提供创建和解析电子邮件的功能。例如:创建一个简单的文本邮件。
sqlite3SQLite 数据库接口提供与 SQLite 数据库交互的功能。例如:连接到数据库、执行 SQL 查询。
csv处理 CSV 文件格式提供读写 CSV 文件的功能。例如:读取和写入 CSV 文件。
xml处理 XML 数据提供处理 XML 数据的功能。例如:解析和生成 XML 文件。
tkinterGUI 编程工具包提供创建图形用户界面的功能。例如:创建一个简单的窗口和按钮。
threading多线程编程提供创建和管理线程的功能。例如:创建一个简单的线程。
multiprocessing多进程编程提供创建和管理进程的功能。例如:创建一个简单的子进程。
subprocess启动和控制子进程提供启动和控制子进程的功能。例如:执行外部命令。
logging日志记录工具提供记录日志的功能。例如:配置日志记录器并记录消息。
unittest单元测试框架提供单元测试的功能。例如:编写和运行测试用例。
doctest用于测试文档中的示例代码提供从文档字符串中提取和运行测试的功能。例如:在文档中编写测试用例。
argparse命令行参数解析提供解析命令行参数的功能。例如:定义和解析命令行参数。
pickle对象序列化和反序列化提供将 Python 对象转换为字节流的功能。例如:将对象保存到文件和从文件加载。
shutil文件操作工具提供对文件和目录进行高级操作的功能。例如:复制、移动文件和目录。
gzip支持对 GZIP 格式的文件进行压缩和解压缩提供对 GZIP 格式文件的压缩和解压缩功能。例如:压缩和解压缩文件。
tarfile处理 tar 文件格式提供处理 tar 文件的功能。例如:创建和提取 tar 文件。
zipfile处理 ZIP 文件格式提供处理 ZIP 文件的功能。例如:创建和提取 ZIP 文件。

3. 部分模块的示例

3.1 操作系统 - os

  提供与操作系统交互的功能,包括文件和目录操作。

import os

# 获取当前工作目录
current_directory = os.getcwd()
print("Current Directory:", current_directory)

# 列出目录中的文件
files_in_directory = os.listdir(current_directory)
print("Files in Directory:", files_in_directory)

# 创建目录
os.mkdir("example_directory")

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

3.2 文件通配符 - glob

  提供文件名的模式匹配功能。

import glob

# 匹配当前目录下所有的 .txt 文件
txt_files = glob.glob('*.txt')
print(f"匹配的 .txt 文件:{txt_files}")

3.3 命令行参数 - sys 和 argparse

  sys 提供对 Python 解释器的变量和函数的访问,而 argparse 用于解析命令行参数。

import sys
import argparse

# 使用 sys 获取命令行参数
script_name = sys.argv[0]
print(f"脚本名称:{script_name}")

# 使用 argparse 解析命令行参数
parser = argparse.ArgumentParser(description='描述脚本用途')
parser.add_argument('--input', help='输入文件路径')
args = parser.parse_args()
input_file = args.input
print(f"输入文件路径:{input_file}")

3.4 错误输出重定向和程序终止 - sys

import sys

try:
    # 模拟错误
    raise ValueError("这是一个错误")
except ValueError as e:
    # 将错误信息输出到标准错误流
    print(f"发生错误:{e}", file=sys.stderr)
    # 终止程序
    sys.exit(1)

3.5 字符串正则匹配 - re

  提供正则表达式的功能,用于模式匹配。
  更多关于Python正则匹配可以参考下面博文:
  Python基础:正则表达式(regular expression)详解

import re

# 匹配字符串中的数字
result = re.search(r'\d+', 'Age: 30')
if result:
    matched_number = result.group()
    print(f"匹配到的数字:{matched_number}")

3.6 数学 - math

  提供数学运算函数

import math

# 计算正弦值
sin_value = math.sin(math.radians(90))
print(f"正弦值:{sin_value}")

3.7 访问互联网 - urllib

  提供处理 URL 的模块,包括打开、读取、解析 URL。

from urllib.request import urlopen

# 打开并读取 URL 内容
with urlopen('https://www.example.com') as response:
    content = response.read().decode('utf-8')
    print(f"URL 内容:{content}")

3.8 日期和时间 - datetime

  提供处理日期和时间的类和函数。

from datetime import datetime

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

3.9 数据压缩 - gzip

  提供对 GZIP 格式的文件进行压缩和解压缩功能。

import gzip

# 压缩文件
with open('example.txt', 'rb') as file:
    with gzip.open('example.txt.gz', 'wb') as compressed_file:
        compressed_file.writelines(file)

# 解压缩文件
with gzip.open('example.txt.gz', 'rb') as compressed_file:
    content = compressed_file.read().decode('utf-8')
    print(f"解压缩后的内容:{content}")

3.10 性能度量 - timeit

  用于测试代码段的执行时间

import timeit

# 测量代码执行时间
def example_function():
    result = sum(range(1000))

execution_time = timeit.timeit(example_function, number=10000)
print(f"代码执行时间:{execution_time} 秒")

3.11 测试模块 - unittest

  提供单元测试功能

import unittest

# 编写测试用例
class ExampleTestCase(unittest.TestCase):
    def test_addition(self):
        self.assertEqual(1 + 1, 2)

# 运行测试
if __name__ == '__main__':
    unittest.main()

4. 使用标准库注意事项

  使用 Python 标准库是编写稳健、可维护和跨平台的 Python 代码的关键部分。

  1. 版本兼容性
      不同版本的 Python 可能会引入新的模块或对现有模块进行更改。确保你的代码适用于你所使用的 Python 版本,查阅相应版本的官方文档。
  2. 异常处理
      标准库中的函数和模块可能会引发异常。在使用它们时,确保进行适当的异常处理以防止程序崩溃。
  3. 文档查阅
      Python 提供了详细的官方文档,其中包含对每个模块和函数的详细说明。在使用标准库的特定部分之前,请查阅相应的文档以了解其功能和用法。
  4. 模块导入
      了解如何正确导入模块是重要的。有时候,你可能只需要导入模块的一部分而不是全部。例如,使用 from module import function 语法。
  5. 模块的性能
      一些模块可能会影响程序的性能。在处理大量数据或需要高性能的情况下,考虑使用专门设计的库或工具。
  6. 可移植性
      虽然标准库是 Python 的一部分,但并不是所有模块在所有平台上都是完全相同的。确保你的代码在目标平台上能够正确运行。
  7. 虚拟环境
      在项目中使用虚拟环境是一个良好的实践,它可以确保你的项目在不同环境中具有相同的依赖关系。
  8. 第三方库
      在某些情况下,可能有更好的第三方库可用,提供了比标准库更强大或更专业的功能。在选择使用标准库还是第三方库时,要根据具体需求和项目要求做出明智的选择。
  9. 更新和维护
      定期检查 Python 的更新,并确保你的代码能够在最新版本的 Python 中运行。标准库中的一些模块可能会在后续版本中进行改进或修复 bug。
  10. 国际化
      如果你的应用程序涉及到国际化和本地化,了解标准库中与这些方面相关的模块,如 locale 和 gettext。

5. 参考

  官网:
  https://docs.python.org/zh-cn/3/library/index.html
  菜鸟教程:
  https://www.runoob.com/python3/python3-stdlib.html
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1263364.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MindStudio学习记录三:推理应用开发 acl mindx sdk

1.推理应用流程 1.1.创建工程 1.2.模型转换 1.3代码开发 1.3.1ACL代码 1.3.2MindX SDK开发 可视化模块化设计 中间的图片与处理 是基于AIPP的可视化处理 1.5.编译 交叉编译 1.6.运行与调试 1.7 调优工具 profiling性能分析 2.开发举例 resnet-50 2.1 准备工程 2.2.准备模型…

哈希和unordered系列封装(C++)

哈希和unordered系列封装 一、哈希1. 概念2. 哈希函数,哈希碰撞哈希函数(常用的两个)哈希冲突(碰撞)小结 3. 解决哈希碰撞闭散列线性探测二次探测代码实现载荷因子(扩容) 开散列哈希桶代码实现扩…

bluez inquiry 流程梳理--从代码层面理解bluez架构

贴一张bluez架构图方便理解 user space APP:上层应⽤程序 Pluseaudio/pipewire:A2DP的组件 Bluetoothd: 蓝⽛守护进程 Bluez: 包括Bluez tool跟Bluez lib kernel space 内核代码包含以下⼏部分 driver/bluetooth net/bluetooth include/net/bluetooth…

webpack项目工程初始化

一、初始化项目 默认系统已经安装node //初始化 pnpm init//安装webpack pnpm i -D webpack webpack-cli 新建一个index.html的入口文件 新建一个src文件存放js代码,src里面新建一个index.js package.josn配置打包命令 {"name": "webpack-cs&q…

vue+elementUI的tabs与table表格联动固定与滚动位置

有个变态的需求,要求tabs左侧固定,右侧是表格,点击左侧tab,右侧表格滚动到指定位置,同时,右侧滚动的时候,左侧tab高亮相应的item 上图 右侧的高度非常高,内容非常多 常规的瞄点不适…

零基础可以学编程吗,不懂英语怎么学编程,中文编程工具实例

零基础可以学编程吗,不懂英语怎么学编程,中文编程工具实例 上图是中文编程工具界面、标尺实例。 给大家分享一款中文编程工具,零基础轻松学编程,不需英语基础,编程工具可下载。 这款工具不但可以连接部分硬件&#x…

spring-boot对rabbitMQ的操作

一、安装rabbitMQ 1、直接使用docker拉取镜像 docker pull rabbitmq:3.82、启动容器 docker run \-e RABBITMQ_DEFAULT_USERadmin \-e RABBITMQ_DEFAULT_PASS123456 \-v mq-plugins:/plugins \--name rabbit01 \--hostname rabbit01 --restartalways \-p 15672:15672 \-p 5672:…

在微服务架构中的数据一致性

当从传统的单体应用架构转移到微服务架构时,特别是涉及数据一致性时,数据一致性是微服务架构中最困难的部分。传统的单体应用中,一个共享的关系型数据库负责处理数据一致性。在微服务架构中,如果使用“每个服务一个数据库”的模式…

碧莲盛 x Tapdata:实时数据如何赋能医疗美容行业,助力医疗决策及个性化服务升级

使用 Tapdata,化繁为简,轻量代替 OGG、DSG 这样的同步工具,以及 Kettle、Informatica、Python 这样的 ETL 工具或脚本,帮助企业在五花八门的数据需求面前,实现“做且仅做最后一次 ETL”的目标,这绝非纸上谈…

TIME_WAIT状态TCP连接导致套接字无法重用实验

理论相关知识可以看一下《TIME_WAIT相关知识》。 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<unistd.h> #include<arpa/inet.h> #include<sys/socket.h> #include<errno.h> #include<syslog.h> #inc…

API接口测试工具的主要作用及选择指南

API接口测试是现代软件开发中至关重要的一环。为了确保不同组件之间的无缝集成和功能正常运作&#xff0c;API接口测试工具应运而生。本文将介绍API接口测试工具的主要作用&#xff0c;以及在选择适合项目的工具时需要考虑的因素。 1、功能测试&#xff1a;API接口测试工具的首…

基于Python+requests编写的自动化测试项目-实现流程化的接口串联

框架产生目的&#xff1a;公司走的是敏捷开发模式&#xff0c;编写这种框架是为了能够满足当前这种发展模式&#xff0c;用于前后端联调之前&#xff08;后端开发完接口&#xff0c;前端还没有将业务处理完毕的时候&#xff09;以及日后回归阶段&#xff0c;方便为自己腾出学(m…

Stable Diffusion绘画系列【3】:二次元动漫画风

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

C语言——求π的近似值

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> #include<math.h> int main() {int s;double n,t,pi;t1;pi0;n1.0;s1;while (fabs(t)>1e-6){pipit; nn2; s-s; ts/n;}pipi*4;printf("pi%lf\n",pi);return 0; }这里是求小数点后6位——1e-6&#…

漏洞环境靶场搭建(内含DVWA SQLi-LABS upload-labs等)

一、docker环境搭建(以redhat8为例&#xff0c;centos7命令基本一致) 1、安装docker yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin 2、启动docker systemctl start docker 3、配置镜像加速 vim /etc/docker/daemon.json {"registr…

Linux下基于MPI的hello程序设计

Linux下基于MPI的hello程序设计 一、MPICH并行计算库安装实验环境部署创建SSH信任连接&#xff0c;实现免密钥互相连接node1安装MPICH 3.4配置NFS注意(一定要先看)环境测试 二、HELLO WORLD并行程序设计 一、MPICH并行计算库安装 在Linux环境下安装MPICH执行环境&#xff0c;配…

Photoshop Elements 2023 v21.0(ps简化版)

Photoshop Elements 2023是一款ps简化版图像处理软件&#xff0c;它加入了一些新的功能和工具&#xff0c;以帮助用户更高效地处理图片。 新功能&#xff1a;软件加入了黑科技&#xff0c;采用Adobe Sensei AI技术&#xff0c;主打人工智能&#xff0c;一键P图&#xff0c;新增…

tabs切换,当点击tabItem时候,改变选中样式,以及content内容区域

效果图展示&#xff1a; html原生代码&#xff1a; <div><div class"buttons-row nav-select riskType" style"padding: 10px;"><div class"shoucang-title-box flex-start"><div class"shoucang-title-item active&q…

Django回顾【二】

目录 一、Web框架 二、WSGI协议 三、 Django框架 1、MVC与MTV模型 2、Django的下载与使用 补充 3、启动django项目 补充 5、 Django请求生命周期 四、路由控制 1、路由是什么&#xff1f; 2、如何使用 3、path详细使用 4、re_path详细使用 5、反向解析 6、路由…

The Sandbox 与 Shemaroo Entertainment 达成合作,将宝莱坞标杆作品带入元宇宙

我们非常高兴地宣布与印度领先的媒体和娱乐集团 Shemaroo Entertainment 建立合作伙伴关系。BharatBox 是全新的文化元宇宙中心&#xff0c;将展示印度娱乐业的知名艺术家和品牌。该项目标志着 Shemaroo 将逐步涉足数字领域&#xff0c;将电影传统与最先进的技术相结合&#xf…