python 进阶突破——内置模块(Standard Library)
Python 提供了丰富的内置模块(Standard Library),无需安装即可直接使用。以下是一些常用的内置模块及其主要功能:
1. 文件与系统操作
- os:操作系统交互
import os
os.getcwd() # 当前工作目录
os.listdir() # 列出目录内容
os.path.join() # 拼接路径
sys:Python 解释器相关
import sys
sys.argv # 命令行参数
sys.exit() # 退出程序
sys.path # Python 模块搜索路径
pathlib(Python 3.4+):面向对象的路径操作
from pathlib import Path
Path('file.txt').read_text() # 读取文件
shutil:高级文件操作(复制、移动、压缩等)
shutil.copy('src.txt', 'dst.txt')
2. 日期与时间
- datetime:日期和时间处理
from datetime import datetime
datetime.now() # 当前时间
datetime.strptime() # 字符串转时间
time:时间相关函数
import time
time.sleep(1) # 休眠
time.time() # 时间戳
3. 数据序列化与格式
- json:JSON 编码/解码
import json
json.dumps({'a': 1}) # 字典转JSON字符串
json.loads('{"a": 1}') # JSON字符串转字典
pickle:Python 对象序列化(二进制格式)
pickle.dumps(obj) # 对象转字节
pickle.loads(data) # 字节转对象
4. 数学与随机数
- math:数学函数
import math
math.sqrt(4) # 平方根
math.pi # 圆周率
random:随机数生成
import random
random.randint(1, 10) # 1~10的随机整数
random.choice(list) # 随机选择元素
5. 网络与请求
- urllib.request:HTTP 请求
from urllib.request import urlopen
response = urlopen('https://www.python.org')
socket:底层网络通信
import socket
socket.gethostbyname('python.org') # DNS解析
6. 多线程与多进程
- threading:多线程
import threading
thread = threading.Thread(target=func)
thread.start()
multiprocessing:多进程
from multiprocessing import Process
p = Process(target=func)
p.start()
7. 数据压缩与归档
- zipfile:ZIP 文件处理
from zipfile import ZipFile
with ZipFile('archive.zip', 'r') as z:
z.extractall()
gzip:GZIP 压缩
import gzip
with gzip.open('file.gz', 'rb') as f:
data = f.read()
8. 调试与测试
- logging:日志记录
import logging
logging.basicConfig(level=logging.INFO)
logging.info('This is a log message.')
unittest:单元测试框架
import unittest
class TestExample(unittest.TestCase):
def test_add(self):
self.assertEqual(1 + 1, 2)
9. 其他实用模块
- re:正则表达式
import re
re.findall(r'\d+', '123 abc') # 匹配数字
collections:扩展数据结构
from collections import defaultdict, Counter
Counter(['a', 'b', 'a']) # 计数统计
itertools:迭代器工具
from itertools import permutations
list(permutations('ABC', 2)) # 排列组合
argparse:命令行参数解析
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--input', help='Input file')
args = parser.parse_args()
些内置模块覆盖了文件操作、系统交互、数据处理、网络通信等常见需求。根据实际场景选择合适的模块可以大幅提升开发效率。