python中常用的标准库以及功能">Python 提供了丰富的标准库,这些库为我们提供了常用的工具和功能,涵盖了从操作系统交互、文件处理、数据序列化、网络通信到多线程编程等方方面面。这些标准库大大简化了我们的工作,使得开发高效、稳定、易于维护的应用程序变得更加容易。在实际项目中,熟练掌握和合理运用这些标准库,可以显著提高我们的开发效率和代码质量。
1. os
- 功能:
os
模块提供了一种与操作系统进行交互的便捷方式。我们可以使用它来处理文件和目录、管理环境变量、执行操作系统命令等。 - 常用功能:
os.path
: 用于路径操作(如路径拼接、文件名提取)。os.makedirs()
: 创建多层目录。os.getenv()
: 获取环境变量。os.system()
: 执行系统命令。
2. sys
- 功能:
sys
模块提供了与 Python 解释器相关的函数和变量,允许我们与解释器进行交互。 - 常用功能:
sys.argv
: 命令行参数列表。sys.exit()
: 终止程序运行。sys.path
: 模块搜索路径列表,可以动态修改。sys.stdout
/sys.stderr
: 输出流和错误流的重定向。
3. math
- 功能:
math
模块提供了基本的数学函数和常量,如三角函数、对数、指数、平方根、常数(如π)等。 - 常用功能:
math.sqrt()
: 计算平方根。math.sin()
,math.cos()
,math.tan()
: 三角函数。math.log()
: 计算对数(自然对数和其他基数对数)。math.factorial()
: 计算阶乘。
4. datetime
- 功能:
datetime
模块用于处理日期和时间,支持日期的算术运算、格式化、解析等操作。 - 常用功能:
datetime.date
: 表示日期(年、月、日)。datetime.time
: 表示时间(时、分、秒、毫秒)。datetime.datetime
: 表示日期和时间的组合。datetime.timedelta
: 表示两个日期或时间的差。datetime.strftime()
: 格式化日期和时间为字符串。datetime.strptime()
: 从字符串解析日期和时间。
5. time
- 功能:
time
模块提供了与时间相关的函数,如暂停、获取当前时间等。 - 常用功能:
time.time()
: 返回当前时间的时间戳(自1970-01-01以来的秒数)。time.sleep()
: 让程序暂停指定的时间(秒)。time.localtime()
: 将时间戳转换为本地时间的结构体。time.strftime()
: 格式化时间为字符串。
6. random
- 功能:
random
模块用于生成伪随机数,并提供了随机选择、打乱顺序等功能。 - 常用功能:
random.random()
: 返回0到1之间的随机浮点数。random.randint(a, b)
: 返回a到b之间的随机整数。random.choice()
: 从序列中随机选择一个元素。random.shuffle()
: 随机打乱序列顺序。random.sample()
: 从序列中随机取样。
7. re
- 功能:
re
模块提供了正则表达式的支持,允许你在字符串中进行复杂的模式匹配、查找和替换。 - 常用功能:
re.match()
: 从字符串的起始位置进行匹配。re.search()
: 在字符串中查找模式的首次出现。re.findall()
: 查找字符串中所有符合模式的部分。re.sub()
: 替换字符串中符合模式的部分。
8. json
- 功能:
json
模块提供了将 Python 对象转换为 JSON 格式,以及将 JSON 数据解析为 Python 对象的功能。 - 常用功能:
json.dump()
: 将 Python 对象序列化为 JSON 格式,并写入文件。json.dumps()
: 将 Python 对象序列化为 JSON 格式的字符串。json.load()
: 从文件中读取 JSON 数据并解析为 Python 对象。json.loads()
: 将 JSON 字符串解析为 Python 对象。
9. subprocess
- 功能:
subprocess
模块允许我们生成子进程,并与其交互,代替旧的os.system()
方法。 - 常用功能:
subprocess.run()
: 运行命令并等待其完成。subprocess.Popen()
: 启动一个子进程,并可以通过stdin
,stdout
,stderr
与其交互。subprocess.call()
: 执行命令并返回状态码。
10. collections
- 功能:
collections
模块提供了几个有用的容器数据类型,如Counter
,deque
,defaultdict
,namedtuple
等。 - 常用功能:
Counter
: 用于计数的字典,可以统计元素出现的次数。deque
: 双端队列,支持在两端高效地添加和删除元素。defaultdict
: 带有默认值的字典。namedtuple
: 定义命名元组,可以像对象一样访问元素。
11. itertools
- 功能:
itertools
模块提供了用于操作迭代器的函数,用于高效地处理循环和组合生成器等任务。 - 常用功能:
itertools.chain()
: 将多个迭代器连接在一起。itertools.cycle()
: 无限循环一个迭代器。itertools.permutations()
: 生成序列的所有排列。itertools.combinations()
: 生成序列的所有组合。itertools.product()
: 生成笛卡尔积。
12. functools
- 功能:
functools
模块提供了处理和操作函数的工具,支持部分函数应用、缓存、比较等功能。 - 常用功能:
functools.partial()
: 创建一个部分应用的函数。functools.lru_cache()
: 通过缓存来优化函数性能。functools.reduce()
: 累积地将函数应用于序列的元素。
13. threading
- 功能:
threading
模块支持多线程编程,允许我们在 Python 中创建和管理线程。 - 常用功能:
threading.Thread()
: 创建并启动一个新线程。threading.Lock()
: 实现线程间的互斥锁。threading.Event()
: 用于线程间通信的同步原语。threading.Timer()
: 延迟执行的线程。
14. multiprocessing
- 功能:
multiprocessing
模块提供了支持并行处理的功能,通过在多个进程中分配任务来提高计算效率。 - 常用功能:
multiprocessing.Process()
: 创建并启动一个新进程。multiprocessing.Pool()
: 创建一个进程池,用于并行处理多个任务。multiprocessing.Queue()
: 用于进程间通信的队列。multiprocessing.Manager()
: 管理共享状态的服务。
15. shutil
- 功能:
shutil
模块提供了高级的文件操作功能,如复制、移动、删除文件和目录。 - 常用功能:
shutil.copy()
: 复制文件。shutil.move()
: 移动文件或目录。shutil.rmtree()
: 删除目录及其所有内容。shutil.make_archive()
: 创建压缩文件(zip、tar 等)。
16. glob
- 功能:
glob
模块用于匹配文件路径名模式,如查找符合特定模式的文件。 - 常用功能:
glob.glob()
: 返回符合特定模式的文件路径列表。glob.iglob()
: 返回一个迭代器,生成符合模式的文件路径。
17. csv
- 功能:
csv
模块提供了读写 CSV 文件的功能,支持多种格式的 CSV 文件操作。 - 常用功能:
csv.reader()
: 读取 CSV 文件内容,返回一个可迭代的 reader 对象。csv.writer()
: 写入 CSV 文件内容。csv.DictReader()
: 以字典的形式读取 CSV 文件。csv.DictWriter()
: 以字典的形式写入 CSV 文件。
18. hashlib
- 功能:
hashlib
模块提供了用于生成哈希值和摘要的算法,如 SHA-1、SHA-256、MD5 等。 - 常用功能:
hashlib.sha256()
: 生成 SHA-256 哈希值。hashlib.md5()
: 生成 MD5 哈希值。hashlib.blake2b()
: 生成 Blake2b 哈希值。hashlib.sha512()
: 生成 SHA-512 哈希值。
19. http
- 功能:
http
模块提供了处理 HTTP 请求和响应的功能,包含服务器和客户端相关的工具。 - 常用功能:
http.client
: 用于发起 HTTP 请求。http.server
: 用于创建简单的 HTTP 服务器。http.cookies
: 用于处理 HTTP Cookies。http.HTTPStatus
: 枚举 HTTP 状态码。
20. socket
- 功能:
socket
模块提供了低级别的网络通信接口,支持 TCP、UDP、IP 等网络协议的编程。 - 常用功能:
socket.socket()
: 创建一个套接字对象。socket.bind()
: 绑定套接字到地址。socket.listen()
: 监听连接。socket.accept()
: 接受连接请求。socket.connect()
: 连接到远程套接字。