「Python系列」Python标准库

本文涉及的产品
性能测试 PTS,5000VUM额度
容器镜像服务 ACR,镜像仓库100个 不限时长
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 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列表
相关文章
|
10天前
|
调度 开发者 Python
Python中的异步编程:理解asyncio库
在Python的世界里,异步编程是一种高效处理I/O密集型任务的方法。本文将深入探讨Python的asyncio库,它是实现异步编程的核心。我们将从asyncio的基本概念出发,逐步解析事件循环、协程、任务和期货的概念,并通过实例展示如何使用asyncio来编写异步代码。不同于传统的同步编程,异步编程能够让程序在等待I/O操作完成时释放资源去处理其他任务,从而提高程序的整体效率和响应速度。
|
13天前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
40 0
|
7天前
|
数据库 Python
异步编程不再难!Python asyncio库实战,让你的代码流畅如丝!
在编程中,随着应用复杂度的提升,对并发和异步处理的需求日益增长。Python的asyncio库通过async和await关键字,简化了异步编程,使其变得流畅高效。本文将通过实战示例,介绍异步编程的基本概念、如何使用asyncio编写异步代码以及处理多个异步任务的方法,帮助你掌握异步编程技巧,提高代码性能。
20 4
|
7天前
|
API 数据处理 Python
探秘Python并发新世界:asyncio库,让你的代码并发更优雅!
在Python编程中,随着网络应用和数据处理需求的增长,并发编程变得愈发重要。asyncio库作为Python 3.4及以上版本的标准库,以其简洁的API和强大的异步编程能力,成为提升性能和优化资源利用的关键工具。本文介绍了asyncio的基本概念、异步函数的定义与使用、并发控制和资源管理等核心功能,通过具体示例展示了如何高效地编写并发代码。
16 2
|
12天前
|
数据采集 JSON 测试技术
Python爬虫神器requests库的使用
在现代编程中,网络请求是必不可少的部分。本文详细介绍 Python 的 requests 库,一个功能强大且易用的 HTTP 请求库。内容涵盖安装、基本功能(如发送 GET 和 POST 请求、设置请求头、处理响应)、高级功能(如会话管理和文件上传)以及实际应用场景。通过本文,你将全面掌握 requests 库的使用方法。🚀🌟
33 7
|
28天前
|
网络协议 数据库连接 Python
python知识点100篇系列(17)-替换requests的python库httpx
【10月更文挑战第4天】Requests 是基于 Python 开发的 HTTP 库,使用简单,功能强大。然而,随着 Python 3.6 的发布,出现了 Requests 的替代品 —— httpx。httpx 继承了 Requests 的所有特性,并增加了对异步请求的支持,支持 HTTP/1.1 和 HTTP/2,能够发送同步和异步请求,适用于 WSGI 和 ASGI 应用。安装使用 httpx 需要 Python 3.6 及以上版本,异步请求则需要 Python 3.8 及以上。httpx 提供了 Client 和 AsyncClient,分别用于优化同步和异步请求的性能。
python知识点100篇系列(17)-替换requests的python库httpx
|
13天前
|
机器学习/深度学习 数据采集 算法
Python机器学习:Scikit-learn库的高效使用技巧
【10月更文挑战第28天】Scikit-learn 是 Python 中最受欢迎的机器学习库之一,以其简洁的 API、丰富的算法和良好的文档支持而受到开发者喜爱。本文介绍了 Scikit-learn 的高效使用技巧,包括数据预处理(如使用 Pipeline 和 ColumnTransformer)、模型选择与评估(如交叉验证和 GridSearchCV)以及模型持久化(如使用 joblib)。通过这些技巧,你可以在机器学习项目中事半功倍。
20 3
|
16天前
|
数据采集 数据可视化 数据处理
如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`)
本文介绍了如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`),加载历史数据,计算均线和其他技术指标,实现交易逻辑,记录和可视化交易结果。示例代码展示了如何根据均线交叉和价格条件进行开仓、止损和止盈操作。实际应用时需注意数据质量、交易成本和风险管理。
35 5
|
14天前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
29 2
|
24天前
|
数据可视化 数据挖掘 Python
Seaborn 库创建吸引人的统计图表
【10月更文挑战第11天】本文介绍了如何使用 Seaborn 库创建多种统计图表,包括散点图、箱线图、直方图、线性回归图、热力图等。通过具体示例和代码,展示了 Seaborn 在数据可视化中的强大功能和灵活性,帮助读者更好地理解和应用这一工具。
36 3