「Python系列」Python标准库

本文涉及的产品
性能测试 PTS,5000VUM额度
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
可观测可视化 Grafana 版,10个用户账号 1个月
简介: Python标准库是Python编程语言自带的一系列模块和功能的集合,这些模块提供了各种常见任务的解决方案,如文件处理、网络编程、数据库接口、图形界面开发、科学计算等。使用标准库可以大大提高开发效率,减少重复劳动。

Python标准库是Python编程语言自带的一系列模块和功能的集合,这些模块提供了各种常见任务的解决方案,如文件处理、网络编程、数据库接口、图形界面开发、科学计算等。使用标准库可以大大提高开发效率,减少重复劳动。

一、 os 模块:文件和目录操作

import os

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

# 更改工作目录
os.chdir("/path/to/new/directory")
print("新的工作目录:", os.getcwd())

# 列出目录中的文件
files = os.listdir()
print("当前目录中的文件:", files)

# 判断文件或目录是否存在
if os.path.exists("file.txt"):
    print("文件存在")

# 创建新目录
os.mkdir("new_directory")

# 删除文件
os.remove("file.txt")

# 删除目录(需确保目录为空)
os.rmdir("new_directory")

二、 sys 模块:与Python解释器交互

import sys

# 访问命令行参数
print("命令行参数:", sys.argv)

# 退出程序
sys.exit("程序退出")

# 标准输出和标准错误输出
print("这是标准输出")
sys.stderr.write("这是标准错误输出\n")

三、 datetime 模块:日期和时间处理

import datetime

# 获取当前日期和时间
now = datetime.datetime.now()
print("当前日期和时间:", now)

# 创建自定义日期和时间
custom_date = datetime.datetime(2023, 3, 15, 12, 30)
print("自定义日期和时间:", custom_date)

# 计算两个日期之间的差值
delta = datetime.timedelta(days=5)
print("5天后的日期:", now + delta)

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

四、 json 模块:处理JSON数据

import json

# Python对象转换为JSON字符串
data = {
   
    "name": "John Doe",
    "age": 30,
    "city": "New York"
}
json_string = json.dumps(data)
print("JSON字符串:", json_string)

# JSON字符串转换为Python对象
parsed_data = json.loads(json_string)
print("解析后的Python对象:", parsed_data)

五、 re 模块:正则表达式

import re

# 匹配字符串中的数字
pattern = re.compile(r'\d+')
match = pattern.findall("The price is 123 dollars.")
print("找到的数字:", match)

# 替换字符串中的模式
new_string = re.sub(r'\d+', '42', "The price is 123 dollars.")
print("替换后的字符串:", new_string)

六、 time模块

time 模块是 Python 的标准库之一,用于处理时间相关的操作。你可以使用 time 模块来获取当前时间、执行时间的测量、延迟执行等。下面是一些 time 模块的常见用法和案例代码:

1. 获取当前时间

import time

# 获取当前时间戳(以秒为单位的浮点数)
current_time = time.time()
print("Current time in seconds:", current_time)

# 格式化时间戳为本地时间
local_time = time.localtime(current_time)
print("Local time:", local_time)

# 格式化时间戳为字符串
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print("Formatted time:", formatted_time)

2. 延迟执行(休眠)

import time

# 延迟执行 5 秒
time.sleep(5)
print("5 seconds have passed.")

3. 执行时间的测量

import time

start_time = time.time()

# 执行一些操作
for i in range(1000000):
    pass

end_time = time.time()
elapsed_time = end_time - start_time

print("Elapsed time:", elapsed_time, "seconds")

4. 时间格式化

import time

# 获取当前时间戳
current_time = time.time()

# 使用strftime方法格式化时间
formatted_time = time.strftime("%A, %d. %B %Y %H:%M:%S", time.localtime(current_time))
print("Formatted time:", formatted_time)

# 常用的格式化代码
# %A: 星期几的完整文本表示
# %a: 星期几的缩写表示
# %B: 月份的完整文本表示
# %b: 月份的缩写表示
# %d: 日,两位数的表示
# %H: 小时,24小时制,两位数表示
# %I: 小时,12小时制,两位数表示
# %M: 分钟,两位数表示
# %S: 秒,两位数表示
# %Y: 年份,四位数表示
# %y: 年份,两位数表示

5. 时间戳与结构化时间转换

import time

# 将时间戳转换为结构化时间
timestamp = 1626700800  # 假设这是一个时间戳
structured_time = time.localtime(timestamp)
print("Structured time:", structured_time)

# 将结构化时间转换为时间戳
structured_time = time.struct_time((2021, 7, 20, 0, 0, 0, 0, 0, 0))
timestamp = time.mktime(structured_time)
print("Timestamp:", timestamp)

time 模块提供了多种方法来处理时间,从获取当前时间到执行时间的测量,再到时间戳和结构化时间之间的转换。在处理时间相关的任务时,它是非常有用的。

七、 random模块

random 模块是 Python 的标准库之一,用于生成随机数。你可以使用 random 模块来生成伪随机数,这些数在多种应用中都很有用,比如模拟、游戏、统计模型等。下面是一些 random 模块的常见用法和案例代码:

1. 生成随机整数

import random

# 生成一个0到9之间的随机整数
random_integer = random.randint(0, 9)
print("Random integer:", random_integer)

# 生成一个随机选择的整数列表
random_integers = random.sample(range(100), 5)  # 从0到99中选择5个不重复的整数
print("Random integers:", random_integers)

2. 生成随机浮点数

import random

# 生成一个0.0到1.0之间的随机浮点数
random_float = random.random()
print("Random float:", random_float)

# 生成一个指定范围内的随机浮点数
random_float_in_range = random.uniform(1.0, 10.0)  # 在1.0到10.0之间
print("Random float in range:", random_float_in_range)

3. 打乱列表顺序

import random

# 打乱列表顺序
my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print("Shuffled list:", my_list)

4. 随机选择元素

import random

# 从列表中随机选择一个元素
my_list = ['apple', 'banana', 'cherry']
random_choice = random.choice(my_list)
print("Random choice:", random_choice)

5. 设置随机数种子

import random

# 设置随机数种子,使得每次生成的随机数序列相同
random.seed(1)

# 生成随机整数
print(random.randint(0, 9))

# 再次生成随机整数,由于种子相同,结果应该与上一次相同
print(random.randint(0, 9))

通过设置随机数种子,你可以确保每次运行程序时生成的随机数序列是相同的,这在需要可重复的实验或调试时非常有用。

6. 随机分割列表

import random

# 随机分割列表为两部分
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
split_index = random.randint(0, len(my_list) - 1)
first_part = my_list[:split_index]
second_part = my_list[split_index:]
print("First part:", first_part)
print("Second part:", second_part)

random 模块提供了丰富的功能来生成各种类型的随机数。请注意,由于它们是伪随机数生成器,所以并不是真正的随机,但对于大多数应用来说,它们的随机性已经足够了。如果你需要更高质量的随机数,可能需要考虑使用专门的随机数生成库。

八、math模块

math 模块是 Python 的标准库之一,提供了对一系列数学函数的访问,这些函数有助于执行基本的数学运算,如三角函数、对数、指数函数、开方等。以下是一些 math 模块的常见用法和案例代码:

1. 常量

math 模块包含了一些常用的数学常量,如 π 和 e。

import math

# 圆周率 π
pi_value = math.pi
print("Value of pi:", pi_value)

# 自然对数的底 e
e_value = math.e
print("Value of e:", e_value)

2. 幂和对数

import math

# 计算幂
x = 2
y = 3
x_to_the_power_of_y = math.pow(x, y)
print(f"{x} to the power of {y} is {x_to_the_power_of_y}")

# 计算自然对数
log_of_x = math.log(x)
print(f"Natural logarithm of {x} is {log_of_x}")

# 计算以10为底的对数
log10_of_x = math.log10(x)
print(f"Logarithm base 10 of {x} is {log10_of_x}")

3. 开方

import math

# 计算平方根
sqrt_of_x = math.sqrt(x)
print(f"Square root of {x} is {sqrt_of_x}")

# 计算任意数的幂次方根
cuberoot_of_x = math.pow(x, 1/3)
print(f"Cube root of {x} is {cuberoot_of_x}")

4. 三角函数

import math

# 计算正弦
sin_of_x = math.sin(math.radians(45))  # 注意:角度需要转换为弧度
print(f"Sine of 45 degrees is {sin_of_x}")

# 计算余弦
cos_of_x = math.cos(math.radians(45))
print(f"Cosine of 45 degrees is {cos_of_x}")

# 计算正切
tan_of_x = math.tan(math.radians(45))
print(f"Tangent of 45 degrees is {tan_of_x}")

5. 舍入函数

import math

# 向上取整
ceil_value = math.ceil(4.7)
print(f"Ceiling of 4.7 is {ceil_value}")

# 向下取整
floor_value = math.floor(4.7)
print(f"Flooring of 4.7 is {floor_value}")

# 四舍五入
round_value = math.round(4.7)
print(f"Rounding of 4.7 is {round_value}")

6. 阶乘

import math

# 计算阶乘
factorial_of_5 = math.factorial(5)
print(f"Factorial of 5 is {factorial_of_5}")

7. 最大值和最小值

import math

# 计算最大值
max_value = math.fmax(3, 5)
print(f"Maximum of 3 and 5 is {max_value}")

# 计算最小值
min_value = math.fmin(3, 5)
print(f"Minimum of 3 and 5 is {min_value}")

math 模块还包含许多其他函数,用于执行各种数学运算。这些函数为开发者提供了一个方便的工具集,用于处理日常的数学计算任务。如果你需要执行更复杂的数学运算或需要用到高级的数学函数,可能需要考虑使用 scipynumpy 等第三方库。

九、urllib模块

urllib 是 Python 的一个标准库模块,用于打开和读取 URL(统一资源定位符)。这个模块提供了一系列的功能,用于处理网络相关的任务,比如打开和读取网页内容、发送 HTTP 请求等。urllib 模块通常与 urllib.requesturllib.errorurllib.parseurllib.robotparser 一起使用,这些模块提供了一系列的功能和异常处理。

下面是一些 urllib 模块中常用功能的使用示例:

1. urllib.request - 打开和读取 URL

from urllib.request import urlopen

# 打开 URL 并读取内容
url = 'https://www.example.com'
response = urlopen(url)

# 读取网页内容
html_content = response.read()

# 打印网页内容
print(html_content.decode('utf-8'))

2. urllib.parse - 解析 URL

from urllib.parse import urlparse, urljoin

# 解析 URL
parsed_url = urlparse('https://www.example.com/path?query=value#fragment')
print(parsed_url)

# 构建 URL
base_url = 'https://www.example.com/path'
relative_url = 'subpath?query=value'
absolute_url = urljoin(base_url, relative_url)
print(absolute_url)

3. urllib.error - 异常处理

from urllib.request import urlopen
from urllib.error import URLError, HTTPError

url = 'https://www.example.com/nonexistent'

try:
    response = urlopen(url)
except URLError as e:
    print(f'We failed to reach a server.')
    print(f'Reason: {e.reason}')
except HTTPError as e:
    print(f'The server couldn\'t fulfill the request.')
    print(f'Error code: {e.code}')
    print(f'Error message: {e.read()}')

4. urllib.robotparser - 读取和解析 robots.txt 文件

from urllib.robotparser import RobotFileParser

# 创建机器人解析器对象
parser = RobotFileParser()

# 设置要解析的 robots.txt 文件的 URL
parser.set_url('https://www.example.com/robots.txt')

# 检查特定用户代理是否可以访问某个路径
user_agent = 'mybot/1.0'
path = '/some/path'
if parser.can_fetch(user_agent, path):
    print(f'{user_agent} can fetch {path}')
else:
    print(f'{user_agent} cannot fetch {path}')

请注意,urllib 模块的功能相对基础,对于更复杂的 HTTP 请求(如 POST 请求、设置 headers、处理 cookies 等),你可能需要使用更高级的库,如 requestsrequests 库提供了更友好和强大的 API,使得发送 HTTP 请求变得更加简单和直观。

十、相关链接

  1. Python下载安装中心
  2. Python官网
  3. Python软件下载
  4. 「Python系列」Python简介及案例
  5. 「Python系列」Python基础语法/数据类型
  6. 「Python系列」Python解释器
  7. 「Python系列」Python运算符
  8. 「Python系列」Python数据结构
  9. 「Python系列」Python元组
  10. 「Python系列」Python集合
  11. 「Python系列」Python列表
相关文章
|
25天前
|
XML JSON 数据库
Python的标准库
Python的标准库
162 77
|
2月前
|
调度 开发者 Python
Python中的异步编程:理解asyncio库
在Python的世界里,异步编程是一种高效处理I/O密集型任务的方法。本文将深入探讨Python的asyncio库,它是实现异步编程的核心。我们将从asyncio的基本概念出发,逐步解析事件循环、协程、任务和期货的概念,并通过实例展示如何使用asyncio来编写异步代码。不同于传统的同步编程,异步编程能够让程序在等待I/O操作完成时释放资源去处理其他任务,从而提高程序的整体效率和响应速度。
|
2月前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
85 0
|
2月前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
102 4
数据分析的 10 个最佳 Python 库
|
26天前
|
XML JSON 数据库
Python的标准库
Python的标准库
47 11
|
2月前
|
人工智能 API 开发工具
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
吴恩达发布的开源Python库aisuite,提供了一个统一的接口来调用多个大型语言模型(LLM)服务。支持包括OpenAI、Anthropic、Azure等在内的11个模型平台,简化了多模型管理和测试的工作,促进了人工智能技术的应用和发展。
133 1
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
|
2月前
|
XML 存储 数据库
Python中的xmltodict库
xmltodict是Python中用于处理XML数据的强大库,可将XML数据与Python字典相互转换,适用于Web服务、配置文件读取及数据转换等场景。通过`parse`和`unparse`函数,轻松实现XML与字典间的转换,支持复杂结构和属性处理,并能有效管理错误。此外,还提供了实战案例,展示如何从XML配置文件中读取数据库连接信息并使用。
Python中的xmltodict库
|
26天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
64 8
|
2月前
|
存储 人工智能 搜索推荐
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
Memoripy 是一个 Python 库,用于管理 AI 应用中的上下文感知记忆,支持短期和长期存储,兼容 OpenAI 和 Ollama API。
100 6
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
|
1月前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
35 4