当前位置:首页>python>Python从入门到精通day27

Python从入门到精通day27

  • 2026-02-05 19:54:03
Python从入门到精通day27

Python操作PDF文件

PDF(Portable Document Format,便携式文档格式)作为跨平台、格式固定的标准化文件,在办公和开发中无处不在 —— 合同签署、报告分享、学术论文分发都离不开它。日常工作中,我们常遇到提取 PDF 文本、批量加水印、加密敏感文档等需求,手动操作繁琐且易出错。今天就用 Python 手把手教你搞定这些操作,覆盖「读取编辑」「创建生成」全场景,代码直接复制可用!

一、核心工具准备:3 个必备三方库

Python 操作 PDF 的核心需求分两类:编辑现有 PDF(提取文本、旋转页面、加密、水印)和创建新 PDF,对应 3 个实用三方库,安装简单,国内用户建议用清华源加速:

# 1. PyPDF2(核心):读取/编辑现有PDF(提取文本、旋转、加密、水印)pip install PyPDF2 -i https://pypi.tuna.tsinghua.edu.cn/simple# 2. reportlab:创建空白PDF,添加文本/图片/字体pip install reportlab -i https://pypi.tuna.tsinghua.edu.cn/simple# 3. pdfminer.six(补充):优化中文文本提取,支持命令行快速操作pip install pdfminer.six -i https://pypi.tuna.tsinghua.edu.cn/simple

✨ 资源获取:文中用到的测试 PDF、字体文件、水印模板,可通过百度云盘获取:链接:https://pan.baidu.com/s/1rQujl5RQn9R7PadB2Z5g_g,提取码:e7b4

二、实战操作:从 PDF 提取文本(3 种方法)

提取文本是 PDF 操作最高频需求,比如提取合同关键信息、统计文档内容。下面分享 3 种方法,覆盖不同场景:

方法 1:PyPDF2(代码集成首选)

PyPDF2 轻量简洁,可直接整合到批量处理脚本中,但对中文提取支持一般,适合英文 / 简单中文 PDF:

import PyPDF2defextract_text_with_pypdf2(pdf_path):# 打开PDF文件(注意:路径需正确,相对路径需与脚本同目录)withopen(pdf_path, 'rb'as f:# 创建PDF读取对象(最新版本用PdfReader,替代旧版PdfFileReader)        reader = PyPDF2.PdfReader(f)# 遍历所有页面,提取文本        total_text = ""for page_num, page inenumerate(reader.pages, 1):# 提取单页文本,空字符串表示无可用文本(如扫描版PDF)            page_text = page.extract_text() or""            total_text += f"第{page_num}页:\n{page_text}\n"return total_text# 调用函数,提取test.pdf的文本result = extract_text_with_pypdf2("test.pdf")print(result)

⚠️ 易错点:扫描版 PDF(图片转 PDF)无法直接提取文本,需搭配 OCR 工具(如 pytesseract)。

方法 2:pdfminer.six(命令行快速提取)

# 安装后直接执行命令,格式:pdf2text.py + PDF路径pdf2text.py test.pdf# 进阶:提取文本并保存到文件(避免终端输出过长)pdf2text.py test.pdf -o 提取结果.txt

方法 3:pdfplumber(中文提取神器)

如果前两种方法提取中文乱码,试试 pdfplumber(需额外安装pip install pdfplumber),专为中文优化:

import pdfplumberdefextract_chinese_text(pdf_path):with pdfplumber.open(pdf_path) as pdf:        total_text = ""for page_num, page inenumerate(pdf.pages, 1):# 精准提取中文,保留排版结构            page_text = page.extract_text() or""            total_text += f"第{page_num}页:\n{page_text}\n"return total_text# 调用函数print(extract_chinese_text("test.pdf"))

三、进阶操作:旋转页面、加密、批量水印

掌握基础提取后,再来解锁 3 个实用功能,解决办公痛点:

1. 旋转 PDF 页面(修复方向错误)

遇到横屏、倒置的 PDF,批量旋转更高效:

import PyPDF2defrotate_pdf(input_path, output_path):# 读取原始PDF    reader = PyPDF2.PdfReader(input_path)    writer = PyPDF2.PdfWriter()  # 创建写入对象,保存处理后PDF# 自定义旋转规则:偶数页逆时针90度,奇数页顺时针90度for page_num, page inenumerate(reader.pages):if page_num % 2 == 0:            rotated_page = page.rotate(-90)  # 负数=逆时针else:            rotated_page = page.rotate(90)   # 正数=顺时针        writer.add_page(rotated_page)# 保存结果(必须用wb模式,二进制写入)withopen(output_path, 'wb'as f:        writer.write(f)# 调用函数:处理XGBoost.pdf,输出temp.pdfrotate_pdf("XGBoost.pdf""temp.pdf")print("页面旋转完成!")

✅ 技巧:旋转角度仅支持 90、180、270 度(90 的整数倍),其他角度无效。

2. 加密 PDF(保护敏感文档)

给合同、机密报告加密,设置统一口令,批量处理超方便:

import PyPDF2defencrypt_pdf(input_path, output_path, password):    reader = PyPDF2.PdfReader(input_path)    writer = PyPDF2.PdfWriter()# 复制所有页面到写入对象for page in reader.pages:        writer.add_page(page)# 设置加密口令(支持简单密码,无特殊字符兼容性更好)    writer.encrypt(password)# 保存加密后的PDFwithopen(output_path, 'wb'as f:        writer.write(f)# 调用函数:给XGBoost.pdf加密,口令foobaredencrypt_pdf("XGBoost.pdf""加密后的PDF.pdf""foobared")print("PDF加密完成,打开需输入口令:foobared")

⚠️ 注意:PyPDF2 仅支持标准加密,密码丢失无法破解,务必牢记!

3. 批量添加水印(标识文档用途)

给 PDF 加 “机密”“草稿” 水印,避免滥用,支持奇偶页不同水印:

import PyPDF2defadd_watermark(input_pdf, watermark_pdf, output_pdf, odd_watermark=None):# 读取原始PDF和水印PDF    main_reader = PyPDF2.PdfReader(input_pdf)    watermark_reader = PyPDF2.PdfReader(watermark_pdf)    writer = PyPDF2.PdfWriter()# 提取水印页(默认取第一页)    base_watermark = watermark_reader.pages[0]# 若指定奇数页水印,读取第二个水印PDF    odd_wm_page = PyPDF2.PdfReader(odd_watermark).pages[0if odd_watermark else base_watermark# 遍历原始页面,批量添加水印for page_num, page inenumerate(main_reader.pages, 1):# 复制原始页(避免修改原页面)        current_page = page# 选择水印:奇数页用专属水印,偶数页用基础水印        watermark = odd_wm_page if page_num % 2 == 1else base_watermark# 叠加水印(水印在上,原始页在下,顺序不可颠倒)        current_page.merge_page(watermark)        writer.add_page(current_page)# 保存结果withopen(output_pdf, 'wb'as f:        writer.write(f)# 调用函数:基础用法(所有页同一水印)add_watermark("XGBoost.pdf""watermark.pdf""带水印的PDF.pdf")# 进阶用法(奇数页用watermark1.pdf,偶数页用watermark.pdf)# add_watermark("XGBoost.pdf", "watermark.pdf", "奇偶页不同水印.pdf", "watermark1.pdf")print("水印添加完成!")

✨ 技巧:水印 PDF 建议制作成半透明(如 50% 透明度),避免遮挡原始文本,可用 WPS/PS 制作。

四、从零创建 PDF:reportlab 实战

除了编辑现有 PDF,还能从零创建自定义 PDF(如报表、证书),用 reportlab 库轻松实现:

from reportlab.lib.pagesizes import A4from reportlab.pdfbase import pdfmetricsfrom reportlab.pdfbase.ttfonts import TTFontfrom reportlab.pdfgen import canvasdefcreate_custom_pdf(output_path):# 1. 创建画布对象,指定A4尺寸    c = canvas.Canvas(output_path, pagesize=A4)    width, height = A4  # A4尺寸:595点(宽)× 842点(高)# 2. 插入图片(需确保图片路径正确)    img = canvas.ImageReader("resources/guido.jpg")# drawImage(图片, x坐标, y坐标, 宽度, 高度),原点在页面左下角    c.drawImage(img, 20, height - 395250375)# 3. 新建页面(如需多页PDF)    c.showPage()# 4. 注册中文字体(解决中文乱码核心步骤)    pdfmetrics.registerFont(TTFont("青呱石头体""resources/fonts/青呱石头体.ttf"))    pdfmetrics.registerFont(TTFont("Vera""resources/fonts/Vera.ttf"))# 5. 添加带样式的文本# 中文文本:橙红色、40号字、水平居中    c.setFont("青呱石头体"40)    c.setFillColorRGB(0.90.50.31)  # RGB颜色+透明度    c.drawString(width//2 - 120, height//2"你好,世界!")# 英文文本:绿色、40号字、旋转18度    c.setFont("Vera"40)    c.setFillColorRGB(0100.5)    c.rotate(18)  # 顺时针旋转18度    c.drawString(250250"hello, world!")# 6. 保存PDF(必须调用,否则文件不生成)    c.save()# 调用函数,创建demo.pdfcreate_custom_pdf("resources/demo.pdf")print("PDF创建完成!")

⚠️ 易错点:中文乱码是因为未注册中文字体,需提前准备.ttf格式字体文件,路径不能错。

五、常见问题避坑指南

  1. 中文提取乱码:优先用 pdfplumber,其次 pdfminer.six,PyPDF2 适合英文;

  2. 水印不显示:检查水印 PDF 路径是否正确,叠加顺序是否为「原始页.merge_page (水印页)」;

  3. 代码报错 “无模块”:确认库名拼写(PyPDF2 首字母大写),重新安装库;

  4. 扫描版 PDF 提取失败:需搭配 OCR 工具(如pip install pytesseract),结合图片识别提取文本。

总结

Python 操作 PDF 的核心优势在于「批量处理」和「自动化」—— 一次写代码,终身免手动。今天分享的提取文本、旋转页面、加密、水印、创建 PDF,覆盖了 90% 的办公场景,代码直接复制可用。如果需要更复杂的功能(如合并多个 PDF、拆分 PDF、提取表格),可以在评论区告诉我,后续出进阶教程!赶紧动手试试,让 Python 帮你解放双手~

下面给大家推荐一些AI工具,可辅助大家效率学习:

国内直接使用顶级AI工具

谷歌浏览器访问:https://www.nezhasoft.cloud/r/vMPJZr

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-07 12:16:13 HTTP/2.0 GET : https://f.mffb.com.cn/a/473722.html
  2. 运行时间 : 0.322656s [ 吞吐率:3.10req/s ] 内存消耗:4,615.37kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=22b8783b35f537c26dede4b1328cbc69
  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.000929s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001640s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001845s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.006089s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001648s ]
  6. SELECT * FROM `set` [ RunTime:0.004902s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001483s ]
  8. SELECT * FROM `article` WHERE `id` = 473722 LIMIT 1 [ RunTime:0.016890s ]
  9. UPDATE `article` SET `lasttime` = 1770437774 WHERE `id` = 473722 [ RunTime:0.024517s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.001786s ]
  11. SELECT * FROM `article` WHERE `id` < 473722 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.002111s ]
  12. SELECT * FROM `article` WHERE `id` > 473722 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001635s ]
  13. SELECT * FROM `article` WHERE `id` < 473722 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.019202s ]
  14. SELECT * FROM `article` WHERE `id` < 473722 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.037927s ]
  15. SELECT * FROM `article` WHERE `id` < 473722 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.040105s ]
0.326333s