当前位置:首页>python>Python必修课:自带标准库核心模块介绍

Python必修课:自带标准库核心模块介绍

  • 2026-02-26 00:57:05
Python必修课:自带标准库核心模块介绍

很多开发者在刚接触 Python 时,第一反应是去 PyPI 搜索第三方包。但事实上,Python 自带的标准库(Standard Library)早已内置了大量经过严格测试、性能稳定、无需安装的模块。用好标准库,不仅能减少项目依赖、降低维护成本,更能写出更 Pythonic 的代码。本文将系统梳理 Python 标准库中最值得掌握的模块,帮你真正把这把"瑞士军刀"用到极致。

一、文本处理

1.1 re —— 正则表达式引擎

re 模块是 Python 处理文本的核心工具,支持完整的正则表达式语法。

import re

text = "订单号:ORD-20240315-0042,金额:¥1,299.00"
pattern = r'ORD-\d{8}-\d{4}'
match = re.search(pattern, text)
print(match.group())  # ORD-20240315-0042

进阶技巧是使用命名捕获组,让匹配结果更具可读性:

pattern = r'(?P<order>ORD-\d{8}-\d{4}).*?(?P<amount>[\d,]+\.\d{2})'
m = re.search(pattern, text)
print(m.group('order'), m.group('amount'))

re.compile() 预编译正则表达式可显著提升循环中的性能,这是生产代码中必须养成的习惯。

1.2 textwrap —— 文本格式化

处理终端输出或日志时,textwrap 能优雅地解决长文本折行问题:

import textwrap

long_text = "Python 的标准库涵盖了文件操作、网络编程、并发处理等几乎所有常见场景,是每个 Python 开发者必须深入掌握的基础知识。"
print(textwrap.fill(long_text, width=40))
print(textwrap.dedent("""
    def foo():
        pass
"""
))

1.3 string —— 字符串常量与模板

string.Template 提供了比 f-string 更安全的模板替换机制,尤其适合处理用户输入的模板字符串,可有效防止代码注入:

from string import Template

tpl = Template("你好,$name!你的积分是 ${points} 分。")
result = tpl.safe_substitute(name="张三", points=2580)

二、数据结构与算法

2.1 collections —— 高性能容器数据类型

这是标准库中使用频率最高的模块之一,提供了比内置类型更强大的容器。

Counter:词频统计、TopN 问题的最优解

from collections import Counter

words = ["python""java""python""go""python""java"]
c = Counter(words)
print(c.most_common(2))  # [('python', 3), ('java', 2)]

defaultdict:消除 KeyError 异常的优雅方案

from collections import defaultdict

graph = defaultdict(list)
edges = [(12), (13), (24)]
for u, v in edges:
    graph[u].append(v)

deque:双端队列,O(1) 复杂度的头部插入/删除,是实现滑动窗口算法的利器

from collections import deque

window = deque(maxlen=3)
for i in range(6):
    window.append(i)
    print(list(window))

OrderedDict:在 Python 3.7 之前字典不保证顺序时的标准解法,至今仍在 LRU Cache 实现中被广泛使用。

namedtuple:轻量级数据对象,介于 tuple 和 class 之间的最佳平衡

from collections import namedtuple

Point = namedtuple('Point', ['x''y''z'])
p = Point(1.02.5-3.0)
print(p.x, p._asdict())

2.2 heapq —— 堆队列算法

Python 的 heapq 实现的是最小堆,适用于优先队列、TopK 问题:

import heapq

data = [518392]
heapq.heapify(data)

# 最小的3个元素,时间复杂度 O(n log k)
print(heapq.nsmallest(3, data))

# 合并多个有序序列
merged = list(heapq.merge([1,3,5], [2,4,6]))

2.3 bisect —— 二分查找

bisect 维护有序列表,插入效率极高,常用于区间归类场景:

import bisect

breakpoints = [60708090]
grades = ['F''D''C''B''A']

defgrade(score):
return grades[bisect.bisect(breakpoints, score)]

print(grade(85))  # B

三、文件与 I/O 操作

3.1 pathlib —— 面向对象的路径操作

pathlib 是 Python 3.4 引入的现代路径处理方式,几乎可以完全替代 os.path

from pathlib import Path

base = Path('/data/projects')
config = base / 'config' / 'settings.toml'

# 遍历所有 Python 文件
for f in base.rglob('*.py'):
    print(f.stem, f.suffix, f.stat().st_size)

# 读写操作
config.write_text('debug = true\n', encoding='utf-8')
content = config.read_text()

3.2 io —— 流式 I/O

io.StringIO 和 io.BytesIO 在内存中模拟文件对象,在单元测试和数据管道中非常实用:

import io, csv

output = io.StringIO()
writer = csv.writer(output)
writer.writerows([['name''age'], ['Alice'30], ['Bob'25]])
csv_content = output.getvalue()

3.3 shutil —— 高级文件操作

os 模块只能处理单个文件,shutil 则提供了复制目录树、打包归档等高级功能:

import shutil

shutil.copytree('/src/project''/backup/project', ignore=shutil.ignore_patterns('*.pyc''__pycache__'))
shutil.make_archive('/backup/project_20240315''zip''/src/project')

四、日期与时间

4.1 datetime —— 日期时间核心模块

from datetime import datetime, timedelta, timezone

now = datetime.now(tz=timezone.utc)
next_week = now + timedelta(weeks=1)

# 格式化与解析
formatted = now.strftime('%Y-%m-%d %H:%M:%S')
parsed = datetime.strptime('2024-03-15 10:30:00''%Y-%m-%d %H:%M:%S')

# 时间戳转换
ts = now.timestamp()
dt = datetime.fromtimestamp(ts, tz=timezone.utc)

4.2 calendar 与 zoneinfo

Python 3.9 引入的 zoneinfo 模块彻底解决了时区处理的历史痛点:

from zoneinfo import ZoneInfo
from datetime import datetime

shanghai = datetime.now(tz=ZoneInfo('Asia/Shanghai'))
ny = shanghai.astimezone(ZoneInfo('America/New_York'))
print(f"上海: {shanghai:%H:%M}  纽约: {ny:%H:%M}")

五、数学与数值计算

5.1 math 与 cmath

math 模块提供完整的数学函数库,cmath 则扩展至复数域:

import math

# 精确的对数计算
print(math.log2(1024))   # 10.0
print(math.log1p(1e-10)) # 精度远高于 math.log(1 + 1e-10)

# 最大公约数与最小公倍数
print(math.gcd(4864))   # 16
print(math.lcm(1218))   # 36(Python 3.9+)

5.2 decimal —— 精确十进制计算

浮点数精度问题在金融计算中是致命的,decimal 提供了任意精度的十进制运算:

from decimal import Decimal, getcontext

getcontext().prec = 50

a = Decimal('0.1') + Decimal('0.2')
print(a)          # 0.3,而不是 0.30000000000000004
print(float(0.1) + float(0.2))  # 0.30000000000000004

5.3 fractions —— 分数运算

from fractions import Fraction

f = Fraction(13) + Fraction(16)
print(f)  # 1/2(精确结果,无误差)

5.4 statistics —— 统计计算

Python 3.8 后 statistics 模块大幅增强,轻量统计场景无需引入 NumPy:

import statistics

data = [24445579]
print(statistics.mean(data))     # 5.0
print(statistics.stdev(data))    # 2.0
print(statistics.median(data))   # 4.5
print(statistics.mode(data))     # 4

六、并发与并行

6.1 threading —— 多线程

适合 I/O 密集型任务,受 GIL 限制不适合 CPU 密集型场景:

import threading

results = {}
lock = threading.Lock()

deffetch(url, idx):
# 模拟网络请求
import time; time.sleep(0.1)
with lock:
        results[idx] = f"data_from_{url}"

threads = [threading.Thread(target=fetch, args=(f"http://api/{i}", i)) for i in range(5)]
for t in threads: t.start()
for t in threads: t.join()

6.2 multiprocessing —— 多进程

绕过 GIL,真正实现 CPU 并行:

from multiprocessing import Pool

defcpu_task(n):
return sum(i * i for i in range(n))

with Pool(processes=4as pool:
    results = pool.map(cpu_task, [10**6] * 8)

6.3 concurrent.futures —— 统一并发接口

这是现代 Python 推荐的并发写法,线程池和进程池接口完全一致:

from concurrent.futures import ThreadPoolExecutor, as_completed

defdownload(url):
returnf"content of {url}"

urls = [f"https://example.com/{i}"for i in range(10)]

with ThreadPoolExecutor(max_workers=5as executor:
    future_map = {executor.submit(download, url): url for url in urls}
for future in as_completed(future_map):
        print(future.result())

6.4 asyncio —— 异步 I/O

Python 异步编程的基础框架,适合处理大量并发 I/O:

import asyncio

asyncdeffetch(session_id, delay):
await asyncio.sleep(delay)
returnf"session {session_id} done"

asyncdefmain():
    tasks = [fetch(i, 0.1for i in range(5)]
    results = await asyncio.gather(*tasks)
    print(results)

asyncio.run(main())

七、网络与协议

7.1 urllib —— HTTP 请求

不引入第三方库时的标准 HTTP 解决方案:

import urllib.request
import urllib.parse
import json

data = urllib.parse.urlencode({'key''value'}).encode()
req = urllib.request.Request('https://httpbin.org/post', data=data, method='POST')
req.add_header('Content-Type''application/x-www-form-urlencoded')

with urllib.request.urlopen(req, timeout=10as resp:
    result = json.loads(resp.read())

7.2 socket —— 底层网络编程

import socket

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect(('www.python.org'80))
    s.sendall(b'GET / HTTP/1.0\r\nHost: www.python.org\r\n\r\n')
    data = s.recv(4096)

7.3 http.server —— 快速 HTTP 服务器

调试或内网文件共享时的利器:

python -m http.server 8080

7.4 smtplib / email —— 邮件发送

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

msg = MIMEMultipart()
msg['From'] = 'sender@example.com'
msg['To'] = 'receiver@example.com'
msg['Subject'] = '自动化报告'
msg.attach(MIMEText('<h1>报告内容</h1>''html''utf-8'))

with smtplib.SMTP_SSL('smtp.example.com'465as smtp:
    smtp.login('user''password')
    smtp.send_message(msg)

八、数据序列化与格式解析

8.1 json —— JSON 处理

import json

# 自定义序列化
from datetime import datetime

classDateEncoder(json.JSONEncoder):
defdefault(self, obj):
if isinstance(obj, datetime):
return obj.isoformat()
return super().default(obj)

data = {'time': datetime.now(), 'value'42}
print(json.dumps(data, cls=DateEncoder, ensure_ascii=False))

8.2 csv —— CSV 文件处理

import csv
from pathlib import Path

with open('data.csv', newline='', encoding='utf-8'as f:
    reader = csv.DictReader(f)
for row in reader:
        print(row['name'], row['score'])

8.3 configparser —— 配置文件解析

import configparser

config = configparser.ConfigParser()
config.read('settings.ini', encoding='utf-8')

host = config.get('database''host', fallback='localhost')
port = config.getint('database''port', fallback=5432)

8.4 pickle —— Python 对象序列化

import pickle

obj = {'model''RandomForest''params': [123], 'accuracy'0.95}
with open('model.pkl''wb'as f:
    pickle.dump(obj, f, protocol=pickle.HIGHEST_PROTOCOL)

with open('model.pkl''rb'as f:
    loaded = pickle.load(f)

⚠️ 注意:pickle 存在安全风险,切勿反序列化来源不可信的数据。


九、系统与进程管理

9.1 os 与 sys

import os, sys

# 环境变量
db_url = os.environ.get('DATABASE_URL''sqlite:///default.db')

# 进程信息
print(os.getpid(), os.getcwd())

# 命令行参数
print(sys.argv)
print(sys.version_info)

9.2 subprocess —— 子进程管理

import subprocess

result = subprocess.run(
    ['git''log''--oneline''-5'],
    capture_output=True,
    text=True,
    check=True
)
print(result.stdout)

9.3 signal —— 信号处理

import signal, sys

defgraceful_shutdown(signum, frame):
    print("收到终止信号,正在优雅退出...")
# 执行清理操作
    sys.exit(0)

signal.signal(signal.SIGTERM, graceful_shutdown)
signal.signal(signal.SIGINT, graceful_shutdown)

十、调试、测试与性能分析

10.1 logging —— 专业日志系统

import logging

logging.basicConfig(
    level=logging.DEBUG,
    format='%(asctime)s [%(levelname)s] %(name)s: %(message)s',
    handlers=[
        logging.FileHandler('app.log', encoding='utf-8'),
        logging.StreamHandler()
    ]
)

logger = logging.getLogger(__name__)
logger.info("服务启动")
logger.error("数据库连接失败", exc_info=True)

10.2 unittest —— 单元测试框架

import unittest

classTestMath(unittest.TestCase):
defsetUp(self):
        self.data = [12345]

deftest_sum(self):
        self.assertEqual(sum(self.data), 15)

deftest_empty(self):
with self.assertRaises(TypeError):
            sum(None)

if __name__ == '__main__':
    unittest.main(verbosity=2)

10.3 timeit —— 精确性能计时

import timeit

# 比较列表推导式与 map 的性能
list_comp = timeit.timeit('[x**2 for x in range(1000)]', number=10000)
map_func  = timeit.timeit('list(map(lambda x: x**2, range(1000)))', number=10000)

print(f"列表推导: {list_comp:.3f}s")
print(f"map函数:  {map_func:.3f}s")

10.4 cProfile —— 性能瓶颈分析

import cProfile, pstats, io

pr = cProfile.Profile()
pr.enable()

# 被分析的代码
result = sorted(range(10**5), key=lambda x: -x)

pr.disable()
s = io.StringIO()
ps = pstats.Stats(pr, stream=s).sort_stats('cumulative')
ps.print_stats(10)
print(s.getvalue())

10.5 traceback 与 pdb

pdb 是 Python 内置调试器,支持断点、单步执行、变量检查:

import pdb

defbuggy_function(data):
    pdb.set_trace()  # 在此处进入交互式调试
    result = [x / 0for x in data]
return result

十一、函数式编程工具

11.1 functools —— 高阶函数工具

import functools

# 缓存装饰器,斐波那契性能从指数级降至线性
@functools.lru_cache(maxsize=None)
deffib(n):
return n if n < 2else fib(n-1) + fib(n-2)

# partial:固定部分参数
from functools import partial
power_of_2 = partial(pow, 2)
print(list(map(power_of_2, range(10))))

# reduce:累积计算
from functools import reduce
product = reduce(lambda x, y: x * y, range(16))  # 120

11.2 itertools —— 迭代器工具箱

import itertools

# 无限计数器
counter = itertools.count(start=1, step=2)

# 排列组合
perms = list(itertools.permutations('ABC'2))
combs = list(itertools.combinations('ABC'2))

# 分组
data = sorted([('A'1), ('B'2), ('A'3)], key=lambda x: x[0])
for key, group in itertools.groupby(data, key=lambda x: x[0]):
    print(key, list(group))

# 链式迭代
chained = list(itertools.chain([1,2], [3,4], [5,6]))

# 滑动窗口(Python 3.10+)
windows = list(itertools.pairwise([1,2,3,4,5]))

11.3 operator —— 运算符函数化

import operator

data = [{'name''Alice''age'30}, {'name''Bob''age'25}]
sorted_data = sorted(data, key=operator.itemgetter('age'))

十二、其他实用模块

12.1 contextlib —— 上下文管理器工具

from contextlib import contextmanager, suppress

@contextmanager
deftimer(label):
import time
    start = time.perf_counter()
try:
yield
finally:
        elapsed = time.perf_counter() - start
        print(f"{label}{elapsed:.4f}s")

with timer("排序"):
    sorted(range(10**6))

# 优雅忽略特定异常
with suppress(FileNotFoundError):
    open('nonexistent.txt')

12.2 dataclasses —— 数据类(Python 3.7+)

from dataclasses import dataclass, field
from typing import List

@dataclass(order=True, frozen=True)
classProduct:
    name: str
    price: float
    tags: List[str] = field(default_factory=list, compare=False)

defdiscounted(self, rate: float) -> float:
return self.price * (1 - rate)

p = Product("MacBook"12999.0, ["电子""电脑"])
print(p.discounted(0.1))

12.3 enum —— 枚举类型

from enum import Enum, IntFlag, auto

classPermission(IntFlag):
    READ    = auto()
    WRITE   = auto()
    EXECUTE = auto()
    ALL     = READ | WRITE | EXECUTE

user_perm = Permission.READ | Permission.WRITE
print(Permission.EXECUTE in user_perm)  # False
print(Permission.READ in user_perm)     # True

12.4 abc —— 抽象基类

from abc import ABC, abstractmethod

classDataProcessor(ABC):
    @abstractmethod
defload(self, path: str) -> list:
        ...

    @abstractmethod
defprocess(self, data: list) -> list:
        ...

defrun(self, path: str) -> list:
return self.process(self.load(path))

12.5 typing —— 类型注解支持

from typing import TypeVar, Generic, Optional, Union, Protocol

T = TypeVar('T')

classStack(Generic[T]):
def__init__(self) -> None:
        self._items: list[T] = []

defpush(self, item: T) -> None:
        self._items.append(item)

defpop(self) -> Optional[T]:
return self._items.pop() if self._items elseNone

12.6 hashlib —— 加密哈希

import hashlib

data = b"sensitive data"
sha256 = hashlib.sha256(data).hexdigest()

# 文件校验
deffile_md5(path):
    h = hashlib.md5()
with open(path, 'rb'as f:
for chunk in iter(lambda: f.read(8192), b''):
            h.update(chunk)
return h.hexdigest()

12.7 uuid —— 唯一标识符

import uuid

uid = uuid.uuid4()         # 随机 UUID
uid2 = uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')  # 基于命名空间的确定性 UUID
print(str(uid))

结语

Python 标准库的设计哲学与 Python 语言本身高度一致——简洁、实用、正交。从底层的 socket 到高层的 http.server,从单线程的 datetime 到并发的 asyncio,标准库覆盖了软件开发中绝大多数基础场景。

真正深入掌握标准库,意味着你在解决问题时的第一直觉是"标准库里有没有?"而不是立刻安装第三方包。这不仅降低了项目的依赖复杂度,更是一种对语言深度理解的体现。

Python必修课:自带标准库核心模块介绍

很多开发者在刚接触 Python 时,第一反应是去 PyPI 搜索第三方包。但事实上,Python 自带的标准库(Standard Library)早已内置了大量经过严格测试、性能稳定、无需安装的模块。用好标准库,不仅能减少项目依赖、降低维护成本,更能写出更 Pythonic 的代码。本文将系统梳理 Python 标准库中最值得掌握的模块,帮你真正把这把"瑞士军刀"用到极致。

一、文本处理

1.1 re —— 正则表达式引擎

re 模块是 Python 处理文本的核心工具,支持完整的正则表达式语法。

import re

text = "订单号:ORD-20240315-0042,金额:¥1,299.00"
pattern = r'ORD-\d{8}-\d{4}'
match = re.search(pattern, text)
print(match.group())  # ORD-20240315-0042

进阶技巧是使用命名捕获组,让匹配结果更具可读性:

pattern = r'(?P<order>ORD-\d{8}-\d{4}).*?(?P<amount>[\d,]+\.\d{2})'
m = re.search(pattern, text)
print(m.group('order'), m.group('amount'))

re.compile() 预编译正则表达式可显著提升循环中的性能,这是生产代码中必须养成的习惯。

1.2 textwrap —— 文本格式化

处理终端输出或日志时,textwrap 能优雅地解决长文本折行问题:

import textwrap

long_text = "Python 的标准库涵盖了文件操作、网络编程、并发处理等几乎所有常见场景,是每个 Python 开发者必须深入掌握的基础知识。"
print(textwrap.fill(long_text, width=40))
print(textwrap.dedent("""
    def foo():
        pass
"""
))

1.3 string —— 字符串常量与模板

string.Template 提供了比 f-string 更安全的模板替换机制,尤其适合处理用户输入的模板字符串,可有效防止代码注入:

from string import Template

tpl = Template("你好,$name!你的积分是 ${points} 分。")
result = tpl.safe_substitute(name="张三", points=2580)

二、数据结构与算法

2.1 collections —— 高性能容器数据类型

这是标准库中使用频率最高的模块之一,提供了比内置类型更强大的容器。

Counter:词频统计、TopN 问题的最优解

from collections import Counter

words = ["python""java""python""go""python""java"]
c = Counter(words)
print(c.most_common(2))  # [('python', 3), ('java', 2)]

defaultdict:消除 KeyError 异常的优雅方案

from collections import defaultdict

graph = defaultdict(list)
edges = [(12), (13), (24)]
for u, v in edges:
    graph[u].append(v)

deque:双端队列,O(1) 复杂度的头部插入/删除,是实现滑动窗口算法的利器

from collections import deque

window = deque(maxlen=3)
for i in range(6):
    window.append(i)
    print(list(window))

OrderedDict:在 Python 3.7 之前字典不保证顺序时的标准解法,至今仍在 LRU Cache 实现中被广泛使用。

namedtuple:轻量级数据对象,介于 tuple 和 class 之间的最佳平衡

from collections import namedtuple

Point = namedtuple('Point', ['x''y''z'])
p = Point(1.02.5-3.0)
print(p.x, p._asdict())

2.2 heapq —— 堆队列算法

Python 的 heapq 实现的是最小堆,适用于优先队列、TopK 问题:

import heapq

data = [518392]
heapq.heapify(data)

# 最小的3个元素,时间复杂度 O(n log k)
print(heapq.nsmallest(3, data))

# 合并多个有序序列
merged = list(heapq.merge([1,3,5], [2,4,6]))

2.3 bisect —— 二分查找

bisect 维护有序列表,插入效率极高,常用于区间归类场景:

import bisect

breakpoints = [60708090]
grades = ['F''D''C''B''A']

defgrade(score):
return grades[bisect.bisect(breakpoints, score)]

print(grade(85))  # B

三、文件与 I/O 操作

3.1 pathlib —— 面向对象的路径操作

pathlib 是 Python 3.4 引入的现代路径处理方式,几乎可以完全替代 os.path

from pathlib import Path

base = Path('/data/projects')
config = base / 'config' / 'settings.toml'

# 遍历所有 Python 文件
for f in base.rglob('*.py'):
    print(f.stem, f.suffix, f.stat().st_size)

# 读写操作
config.write_text('debug = true\n', encoding='utf-8')
content = config.read_text()

3.2 io —— 流式 I/O

io.StringIO 和 io.BytesIO 在内存中模拟文件对象,在单元测试和数据管道中非常实用:

import io, csv

output = io.StringIO()
writer = csv.writer(output)
writer.writerows([['name''age'], ['Alice'30], ['Bob'25]])
csv_content = output.getvalue()

3.3 shutil —— 高级文件操作

os 模块只能处理单个文件,shutil 则提供了复制目录树、打包归档等高级功能:

import shutil

shutil.copytree('/src/project''/backup/project', ignore=shutil.ignore_patterns('*.pyc''__pycache__'))
shutil.make_archive('/backup/project_20240315''zip''/src/project')

四、日期与时间

4.1 datetime —— 日期时间核心模块

from datetime import datetime, timedelta, timezone

now = datetime.now(tz=timezone.utc)
next_week = now + timedelta(weeks=1)

# 格式化与解析
formatted = now.strftime('%Y-%m-%d %H:%M:%S')
parsed = datetime.strptime('2024-03-15 10:30:00''%Y-%m-%d %H:%M:%S')

# 时间戳转换
ts = now.timestamp()
dt = datetime.fromtimestamp(ts, tz=timezone.utc)

4.2 calendar 与 zoneinfo

Python 3.9 引入的 zoneinfo 模块彻底解决了时区处理的历史痛点:

from zoneinfo import ZoneInfo
from datetime import datetime

shanghai = datetime.now(tz=ZoneInfo('Asia/Shanghai'))
ny = shanghai.astimezone(ZoneInfo('America/New_York'))
print(f"上海: {shanghai:%H:%M}  纽约: {ny:%H:%M}")

五、数学与数值计算

5.1 math 与 cmath

math 模块提供完整的数学函数库,cmath 则扩展至复数域:

import math

# 精确的对数计算
print(math.log2(1024))   # 10.0
print(math.log1p(1e-10)) # 精度远高于 math.log(1 + 1e-10)

# 最大公约数与最小公倍数
print(math.gcd(4864))   # 16
print(math.lcm(1218))   # 36(Python 3.9+)

5.2 decimal —— 精确十进制计算

浮点数精度问题在金融计算中是致命的,decimal 提供了任意精度的十进制运算:

from decimal import Decimal, getcontext

getcontext().prec = 50

a = Decimal('0.1') + Decimal('0.2')
print(a)          # 0.3,而不是 0.30000000000000004
print(float(0.1) + float(0.2))  # 0.30000000000000004

5.3 fractions —— 分数运算

from fractions import Fraction

f = Fraction(13) + Fraction(16)
print(f)  # 1/2(精确结果,无误差)

5.4 statistics —— 统计计算

Python 3.8 后 statistics 模块大幅增强,轻量统计场景无需引入 NumPy:

import statistics

data = [24445579]
print(statistics.mean(data))     # 5.0
print(statistics.stdev(data))    # 2.0
print(statistics.median(data))   # 4.5
print(statistics.mode(data))     # 4

六、并发与并行

6.1 threading —— 多线程

适合 I/O 密集型任务,受 GIL 限制不适合 CPU 密集型场景:

import threading

results = {}
lock = threading.Lock()

deffetch(url, idx):
# 模拟网络请求
import time; time.sleep(0.1)
with lock:
        results[idx] = f"data_from_{url}"

threads = [threading.Thread(target=fetch, args=(f"http://api/{i}", i)) for i in range(5)]
for t in threads: t.start()
for t in threads: t.join()

6.2 multiprocessing —— 多进程

绕过 GIL,真正实现 CPU 并行:

from multiprocessing import Pool

defcpu_task(n):
return sum(i * i for i in range(n))

with Pool(processes=4as pool:
    results = pool.map(cpu_task, [10**6] * 8)

6.3 concurrent.futures —— 统一并发接口

这是现代 Python 推荐的并发写法,线程池和进程池接口完全一致:

from concurrent.futures import ThreadPoolExecutor, as_completed

defdownload(url):
returnf"content of {url}"

urls = [f"https://example.com/{i}"for i in range(10)]

with ThreadPoolExecutor(max_workers=5as executor:
    future_map = {executor.submit(download, url): url for url in urls}
for future in as_completed(future_map):
        print(future.result())

6.4 asyncio —— 异步 I/O

Python 异步编程的基础框架,适合处理大量并发 I/O:

import asyncio

asyncdeffetch(session_id, delay):
await asyncio.sleep(delay)
returnf"session {session_id} done"

asyncdefmain():
    tasks = [fetch(i, 0.1for i in range(5)]
    results = await asyncio.gather(*tasks)
    print(results)

asyncio.run(main())

七、网络与协议

7.1 urllib —— HTTP 请求

不引入第三方库时的标准 HTTP 解决方案:

import urllib.request
import urllib.parse
import json

data = urllib.parse.urlencode({'key''value'}).encode()
req = urllib.request.Request('https://httpbin.org/post', data=data, method='POST')
req.add_header('Content-Type''application/x-www-form-urlencoded')

with urllib.request.urlopen(req, timeout=10as resp:
    result = json.loads(resp.read())

7.2 socket —— 底层网络编程

import socket

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect(('www.python.org'80))
    s.sendall(b'GET / HTTP/1.0\r\nHost: www.python.org\r\n\r\n')
    data = s.recv(4096)

7.3 http.server —— 快速 HTTP 服务器

调试或内网文件共享时的利器:

python -m http.server 8080

7.4 smtplib / email —— 邮件发送

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

msg = MIMEMultipart()
msg['From'] = 'sender@example.com'
msg['To'] = 'receiver@example.com'
msg['Subject'] = '自动化报告'
msg.attach(MIMEText('<h1>报告内容</h1>''html''utf-8'))

with smtplib.SMTP_SSL('smtp.example.com'465as smtp:
    smtp.login('user''password')
    smtp.send_message(msg)

八、数据序列化与格式解析

8.1 json —— JSON 处理

import json

# 自定义序列化
from datetime import datetime

classDateEncoder(json.JSONEncoder):
defdefault(self, obj):
if isinstance(obj, datetime):
return obj.isoformat()
return super().default(obj)

data = {'time': datetime.now(), 'value'42}
print(json.dumps(data, cls=DateEncoder, ensure_ascii=False))

8.2 csv —— CSV 文件处理

import csv
from pathlib import Path

with open('data.csv', newline='', encoding='utf-8'as f:
    reader = csv.DictReader(f)
for row in reader:
        print(row['name'], row['score'])

8.3 configparser —— 配置文件解析

import configparser

config = configparser.ConfigParser()
config.read('settings.ini', encoding='utf-8')

host = config.get('database''host', fallback='localhost')
port = config.getint('database''port', fallback=5432)

8.4 pickle —— Python 对象序列化

import pickle

obj = {'model''RandomForest''params': [123], 'accuracy'0.95}
with open('model.pkl''wb'as f:
    pickle.dump(obj, f, protocol=pickle.HIGHEST_PROTOCOL)

with open('model.pkl''rb'as f:
    loaded = pickle.load(f)

⚠️ 注意:pickle 存在安全风险,切勿反序列化来源不可信的数据。


九、系统与进程管理

9.1 os 与 sys

import os, sys

# 环境变量
db_url = os.environ.get('DATABASE_URL''sqlite:///default.db')

# 进程信息
print(os.getpid(), os.getcwd())

# 命令行参数
print(sys.argv)
print(sys.version_info)

9.2 subprocess —— 子进程管理

import subprocess

result = subprocess.run(
    ['git''log''--oneline''-5'],
    capture_output=True,
    text=True,
    check=True
)
print(result.stdout)

9.3 signal —— 信号处理

import signal, sys

defgraceful_shutdown(signum, frame):
    print("收到终止信号,正在优雅退出...")
# 执行清理操作
    sys.exit(0)

signal.signal(signal.SIGTERM, graceful_shutdown)
signal.signal(signal.SIGINT, graceful_shutdown)

十、调试、测试与性能分析

10.1 logging —— 专业日志系统

import logging

logging.basicConfig(
    level=logging.DEBUG,
    format='%(asctime)s [%(levelname)s] %(name)s: %(message)s',
    handlers=[
        logging.FileHandler('app.log', encoding='utf-8'),
        logging.StreamHandler()
    ]
)

logger = logging.getLogger(__name__)
logger.info("服务启动")
logger.error("数据库连接失败", exc_info=True)

10.2 unittest —— 单元测试框架

import unittest

classTestMath(unittest.TestCase):
defsetUp(self):
        self.data = [12345]

deftest_sum(self):
        self.assertEqual(sum(self.data), 15)

deftest_empty(self):
with self.assertRaises(TypeError):
            sum(None)

if __name__ == '__main__':
    unittest.main(verbosity=2)

10.3 timeit —— 精确性能计时

import timeit

# 比较列表推导式与 map 的性能
list_comp = timeit.timeit('[x**2 for x in range(1000)]', number=10000)
map_func  = timeit.timeit('list(map(lambda x: x**2, range(1000)))', number=10000)

print(f"列表推导: {list_comp:.3f}s")
print(f"map函数:  {map_func:.3f}s")

10.4 cProfile —— 性能瓶颈分析

import cProfile, pstats, io

pr = cProfile.Profile()
pr.enable()

# 被分析的代码
result = sorted(range(10**5), key=lambda x: -x)

pr.disable()
s = io.StringIO()
ps = pstats.Stats(pr, stream=s).sort_stats('cumulative')
ps.print_stats(10)
print(s.getvalue())

10.5 traceback 与 pdb

pdb 是 Python 内置调试器,支持断点、单步执行、变量检查:

import pdb

defbuggy_function(data):
    pdb.set_trace()  # 在此处进入交互式调试
    result = [x / 0for x in data]
return result

十一、函数式编程工具

11.1 functools —— 高阶函数工具

import functools

# 缓存装饰器,斐波那契性能从指数级降至线性
@functools.lru_cache(maxsize=None)
deffib(n):
return n if n < 2else fib(n-1) + fib(n-2)

# partial:固定部分参数
from functools import partial
power_of_2 = partial(pow, 2)
print(list(map(power_of_2, range(10))))

# reduce:累积计算
from functools import reduce
product = reduce(lambda x, y: x * y, range(16))  # 120

11.2 itertools —— 迭代器工具箱

import itertools

# 无限计数器
counter = itertools.count(start=1, step=2)

# 排列组合
perms = list(itertools.permutations('ABC'2))
combs = list(itertools.combinations('ABC'2))

# 分组
data = sorted([('A'1), ('B'2), ('A'3)], key=lambda x: x[0])
for key, group in itertools.groupby(data, key=lambda x: x[0]):
    print(key, list(group))

# 链式迭代
chained = list(itertools.chain([1,2], [3,4], [5,6]))

# 滑动窗口(Python 3.10+)
windows = list(itertools.pairwise([1,2,3,4,5]))

11.3 operator —— 运算符函数化

import operator

data = [{'name''Alice''age'30}, {'name''Bob''age'25}]
sorted_data = sorted(data, key=operator.itemgetter('age'))

十二、其他实用模块

12.1 contextlib —— 上下文管理器工具

from contextlib import contextmanager, suppress

@contextmanager
deftimer(label):
import time
    start = time.perf_counter()
try:
yield
finally:
        elapsed = time.perf_counter() - start
        print(f"{label}{elapsed:.4f}s")

with timer("排序"):
    sorted(range(10**6))

# 优雅忽略特定异常
with suppress(FileNotFoundError):
    open('nonexistent.txt')

12.2 dataclasses —— 数据类(Python 3.7+)

from dataclasses import dataclass, field
from typing import List

@dataclass(order=True, frozen=True)
classProduct:
    name: str
    price: float
    tags: List[str] = field(default_factory=list, compare=False)

defdiscounted(self, rate: float) -> float:
return self.price * (1 - rate)

p = Product("MacBook"12999.0, ["电子""电脑"])
print(p.discounted(0.1))

12.3 enum —— 枚举类型

from enum import Enum, IntFlag, auto

classPermission(IntFlag):
    READ    = auto()
    WRITE   = auto()
    EXECUTE = auto()
    ALL     = READ | WRITE | EXECUTE

user_perm = Permission.READ | Permission.WRITE
print(Permission.EXECUTE in user_perm)  # False
print(Permission.READ in user_perm)     # True

12.4 abc —— 抽象基类

from abc import ABC, abstractmethod

classDataProcessor(ABC):
    @abstractmethod
defload(self, path: str) -> list:
        ...

    @abstractmethod
defprocess(self, data: list) -> list:
        ...

defrun(self, path: str) -> list:
return self.process(self.load(path))

12.5 typing —— 类型注解支持

from typing import TypeVar, Generic, Optional, Union, Protocol

T = TypeVar('T')

classStack(Generic[T]):
def__init__(self) -> None:
        self._items: list[T] = []

defpush(self, item: T) -> None:
        self._items.append(item)

defpop(self) -> Optional[T]:
return self._items.pop() if self._items elseNone

12.6 hashlib —— 加密哈希

import hashlib

data = b"sensitive data"
sha256 = hashlib.sha256(data).hexdigest()

# 文件校验
deffile_md5(path):
    h = hashlib.md5()
with open(path, 'rb'as f:
for chunk in iter(lambda: f.read(8192), b''):
            h.update(chunk)
return h.hexdigest()

12.7 uuid —— 唯一标识符

import uuid

uid = uuid.uuid4()         # 随机 UUID
uid2 = uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')  # 基于命名空间的确定性 UUID
print(str(uid))

结语

Python 标准库的设计哲学与 Python 语言本身高度一致——简洁、实用。

真正深入掌握标准库,意味着你在解决问题时的第一直觉是"标准库里有没有?"而不是立刻安装第三方包。这不仅降低了项目的依赖复杂度,更是一种对语言深度理解的体现。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-28 19:47:57 HTTP/2.0 GET : https://f.mffb.com.cn/a/476956.html
  2. 运行时间 : 0.102774s [ 吞吐率:9.73req/s ] 内存消耗:4,840.08kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=31bd1c93281378ad4ac86c9a5a360d58
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000581s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001207s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000705s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000647s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001423s ]
  6. SELECT * FROM `set` [ RunTime:0.000601s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001504s ]
  8. SELECT * FROM `article` WHERE `id` = 476956 LIMIT 1 [ RunTime:0.001285s ]
  9. UPDATE `article` SET `lasttime` = 1772279277 WHERE `id` = 476956 [ RunTime:0.001399s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000577s ]
  11. SELECT * FROM `article` WHERE `id` < 476956 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001015s ]
  12. SELECT * FROM `article` WHERE `id` > 476956 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001025s ]
  13. SELECT * FROM `article` WHERE `id` < 476956 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001996s ]
  14. SELECT * FROM `article` WHERE `id` < 476956 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001797s ]
  15. SELECT * FROM `article` WHERE `id` < 476956 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001841s ]
0.106456s