当前位置:首页>python>【Python办公】批量压缩/解压缩桌面工具

【Python办公】批量压缩/解压缩桌面工具

  • 2026-04-12 14:35:11
【Python办公】批量压缩/解压缩桌面工具

用 Python + PyQt5 打造一款批量压缩/解压缩桌面工具

前言

在日常办公中,我们经常需要处理大量的压缩文件——批量打包项目资料、解压客户发来的一堆附件……每次都要右键一个个操作,效率极低。

今天,我们用 Python + PyQt5 手撸一个批量压缩/解压缩桌面工具,支持 ZIP、7Z、TAR、TAR.GZ、TAR.BZ2、RAR 等主流格式,还支持拖拽添加文件,一键批量处理!

欢迎大家关注此公众号,后台留言"python书籍"可免费获取【Python办公自动化高清PDF】电子书一本

此外小庄推荐一本适合于新手\小白入手一本 Python基础书籍,欢迎大家订阅


效果预览

工具启动后是一个简洁的桌面窗口,核心功能包括:

  • • 压缩模式:选择多个文件/文件夹,一键打包成 ZIP / 7Z / TAR 等格式
  • • 解压模式:批量选择压缩包,一键全部解压
  • • 拖拽支持:直接把文件拖进窗口,省去选择的麻烦
  • • 实时日志:处理过程实时显示,一目了然
  • • 进度条:直观看到处理进度

技术栈

技术
用途
Python 3
主语言
PyQt5
GUI 桌面界面框架
zipfile
处理 ZIP 格式(标准库)
tarfile
处理 TAR/TAR.GZ/TAR.BZ2 格式(标准库)
py7zr
处理 7Z 格式(可选依赖)
rarfile
处理 RAR 格式(可选依赖)

项目结构

16-批量压缩解压缩工具/
├── main.py           # 主程序(所有逻辑都在这里)
├── requirements.txt  # 依赖清单
├── run.bat           # Windows 一键启动脚本
├── run.sh            # macOS/Linux 一键启动脚本
└── README.md         # 项目说明

整个项目只有一个 main.py,结构非常清晰,适合学习和二次开发。


核心代码解析

1. 整体架构设计

程序采用经典的 主线程 + 工作线程 架构:

┌──────────────────────┐
│   CompressorApp      │  ← 主窗口(UI 线程)
│   (QMainWindow)      │
├──────────────────────┤
│   CompressionWorker  │  ← 工作线程(后台处理)
│   (QThread)          │
└──────────────────────┘
  • • CompressorApp:负责界面展示、用户交互
  • • CompressionWorker:负责实际的压缩/解压操作,运行在独立线程中,避免界面卡顿

这是 PyQt5 开发中非常重要的设计模式——耗时操作必须放在子线程,否则 UI 会直接卡死。


2. 工作线程 CompressionWorker

这是整个工具的"引擎",继承自 QThread

classCompressionWorker(QThread):
    progress = pyqtSignal(int)        # 进度信号(0-100)
    log = pyqtSignal(str)             # 日志信号
    finished = pyqtSignal(boolstr)  # 完成信号(是否成功, 消息)

通过 信号(Signal) 机制与主线程通信:

  • • progress 信号驱动进度条更新
  • • log 信号驱动日志区域实时输出
  • • finished 信号通知任务完成,弹出提示框

压缩功能

根据用户选择的格式,分发到不同的压缩方法:

def_compress_files(self):
ifself.format_type == "zip":
self._compress_to_zip(output_file)
elifself.format_type == "7z":
self._compress_to_7z(output_file)
elifself.format_type.startswith("tar"):
self._compress_to_tar(output_file, self.format_type)

以 ZIP 压缩为例,核心逻辑如下:

def_compress_to_zip(self, output_file: str):
with zipfile.ZipFile(output_file, 'w', zipfile.ZIP_DEFLATED) as zipf:
for idx, file_path inenumerate(self.files):
if os.path.isfile(file_path):
# 单个文件:直接写入
                zipf.write(file_path, arcname=os.path.basename(file_path))
elif os.path.isdir(file_path):
# 文件夹:递归遍历所有子文件
for root, dirs, files in os.walk(file_path):
for file in files:
                        file_full_path = os.path.join(root, file)
                        arcname = os.path.relpath(file_full_path, os.path.dirname(file_path))
                        zipf.write(file_full_path, arcname=arcname)
# 更新进度
self.progress.emit(int((idx + 1) / total * 100))

关键细节:

  • • 使用 ZIP_DEFLATED 压缩算法,兼容性最好
  • • 文件夹通过 os.walk() 递归遍历,保持目录结构
  • • arcname 使用相对路径,确保解压后目录结构正确

解压功能

解压时根据文件后缀名自动识别格式:

def_decompress_single_file(self, file_path: str):
    filename = os.path.basename(file_path).lower()

if filename.endswith('.zip'):
with zipfile.ZipFile(file_path, 'r'as zip_ref:
            zip_ref.extractall(extract_dir)
elif filename.endswith('.7z'):
with py7zr.SevenZipFile(file_path, 'r'as archive:
            archive.extractall(path=extract_dir)
elif filename.endswith('.rar'):
with rarfile.RarFile(file_path) as rar:
            rar.extractall(path=extract_dir)
elif filename.endswith(('.tar''.tar.gz''.tgz''.tar.bz2''.tbz2')):
with tarfile.open(file_path, mode) as tar:
            tar.extractall(path=extract_dir)

每个压缩包会解压到以文件名命名的子目录中,避免文件混乱:

extract_dir = os.path.join(self.output_dir, Path(file_path).stem)

比如解压 project.zip,会解压到 输出目录/project/ 下。


3. 主窗口 CompressorApp

界面布局

界面采用纵向堆叠布局,从上到下依次是:

┌─────────────────────────────────┐
│  标题:📦 批量压缩/解压缩工具     │
├─────────────────────────────────┤
│  模式选择 | 格式选择              │
├─────────────────────────────────┤
│  📁 文件列表(支持拖拽)          │
│  ┌─────────────────────────┐    │
│  │ 📄 file1.txt            │    │
│  │ 📂 my_folder            │    │
│  └─────────────────────────┘    │
├─────────────────────────────────┤
│  [添加文件] [添加文件夹] [清空] [移除] │
├─────────────────────────────────┤
│  输出目录: /path/to/output [选择] │
├─────────────────────────────────┤
│  ████████████████░░░░ 75%       │
├─────────────────────────────────┤
│  📋 处理日志                     │
│  ┌─────────────────────────┐    │
│  │ 📦 开始压缩...           │    │
│  │   ✓ file1.txt           │    │
│  └─────────────────────────┘    │
├─────────────────────────────────┤
│         [▶ 开始处理]             │
└─────────────────────────────────┘

拖拽功能实现

拖拽是这个工具的亮点功能之一,实现也很简单:

defsetup_drag_drop(self):
self.file_list.setAcceptDrops(True)
self.file_list.dragEnterEvent = self.drag_enter_event
self.file_list.dropEvent = self.drop_event

defdrag_enter_event(self, event):
if event.mimeData().hasUrls():
        event.acceptProposedAction()  # 接受拖拽

defdrop_event(self, event):
for url in event.mimeData().urls():
        file_path = url.toLocalFile()  # 获取本地文件路径
self.add_file_item(file_path)  # 添加到列表

核心就三步:开启拖拽 → 验证是文件 URL → 转为本地路径并添加。

去重机制

添加文件时会自动去重,避免重复处理:

defadd_file_item(self, file_path: str):
if file_path notinself.selected_files:  # 检查是否已存在
self.selected_files.append(file_path)
# ... 添加到 UI 列表

模式切换

切换"压缩/解压缩"模式时,格式选择框会自动启用/禁用:

defon_mode_changed(self, mode: str):
self.format_combo.setEnabled(mode == "压缩文件")

解压模式下不需要选择格式,因为会根据文件后缀自动识别。


4. 样式美化

工具使用了 QSS(Qt Style Sheets) 进行美化,类似于 CSS:

def_get_stylesheet(self):
return"""
    QMainWindow {
        background-color: 
#ecf0f1;       /* 浅灰色背景 */
    }
    QPushButton {
        background-color: #3498db;       /* 蓝色按钮 */
        color: white;
        border: none;
        border-radius: 4px;             /* 圆角 */
        padding: 8px 12px;
        font-weight: bold;
    }
    QPushButton:hover {
        background-color: #2980b9;       /* 悬停变深 */
    }
    """

日志区域使用了深色主题,模拟终端风格:

self.log_display.setStyleSheet("""
    QTextEdit {
        background-color: #2c3e50;       /* 深色背景 */
        color: #ecf0f1;                  /* 浅色文字 */
        font-family: 'Courier New', monospace;  /* 等宽字体 */
    }
"""
)

5. 可选依赖的优雅处理

对于 py7zr 和 rarfile 这两个非必须的依赖,代码使用了 try-except 做了优雅降级:

try:
import py7zr
except ImportError:
    py7zr = None

try:
import rarfile
except ImportError:
    rarfile = None

在实际使用时,如果用户没安装这些库,会给出友好提示而不是直接崩溃:

def_compress_to_7z(self, output_file):
if py7zr isNone:
self.log.emit("❌ 需要安装 py7zr: pip install py7zr")
return

如何运行

1. 安装依赖

pip install -r requirements.txt

核心依赖只有 PyQt5,可选安装 py7zr(支持 7Z)和 rarfile(支持 RAR)。

2. 启动程序

python main.py

或者直接双击 run.bat(Windows)/ run.sh(macOS/Linux)。


使用指南

压缩文件

  1. 1. 模式选择"压缩文件"
  2. 2. 选择压缩格式(ZIP / 7Z / TAR 等)
  3. 3. 点击"添加文件"或"添加文件夹",也可以直接拖拽文件到列表
  4. 4. 选择输出目录
  5. 5. 点击"开始处理"

压缩包会以 compressed_20260411_143000.zip 这样的时间戳命名,不会覆盖旧文件。

解压文件

  1. 1. 模式选择"解压缩文件"
  2. 2. 添加需要解压的压缩包(支持 ZIP/7Z/RAR/TAR 等)
  3. 3. 选择输出目录
  4. 4. 点击"开始处理"

每个压缩包会解压到独立的子目录中,互不干扰。


可扩展方向

这个工具虽然功能已经比较完善,但还有很多可以扩展的方向:

  1. 1. 加密压缩:支持设置密码保护
  2. 2. 压缩级别:让用户选择压缩率(速度优先 vs 体积优先)
  3. 3. 分卷压缩:大文件自动分卷
  4. 4. 右键菜单集成:注册到系统右键菜单
  5. 5. 压缩包预览:不解压直接查看压缩包内容
  6. 6. 多语言支持:国际化

总结

这个项目麻雀虽小,五脏俱全,涵盖了 PyQt5 桌面开发中的多个核心知识点:

知识点
对应实现
多线程
QThread + Signal/Slot 机制
拖拽功能
dragEnterEvent + dropEvent
文件操作
zipfile / tarfile / py7zr / rarfile
样式美化
QSS 样式表
布局管理
QVBoxLayout + QHBoxLayout 嵌套
用户交互
QFileDialog / QMessageBox
进度反馈
QProgressBar + 实时日志

如果你正在学习 Python GUI 开发,这个项目是一个非常好的练手项目。代码量不大,但覆盖面广,建议动手跑一跑、改一改,一定会有收获!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-15 22:50:22 HTTP/2.0 GET : https://f.mffb.com.cn/a/486005.html
  2. 运行时间 : 0.223917s [ 吞吐率:4.47req/s ] 内存消耗:5,139.55kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=03e276c58bedc248d546cc2f9caad2a9
  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.001132s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001475s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001227s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.007371s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001446s ]
  6. SELECT * FROM `set` [ RunTime:0.000607s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001472s ]
  8. SELECT * FROM `article` WHERE `id` = 486005 LIMIT 1 [ RunTime:0.001077s ]
  9. UPDATE `article` SET `lasttime` = 1776264622 WHERE `id` = 486005 [ RunTime:0.023195s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000622s ]
  11. SELECT * FROM `article` WHERE `id` < 486005 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001357s ]
  12. SELECT * FROM `article` WHERE `id` > 486005 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001144s ]
  13. SELECT * FROM `article` WHERE `id` < 486005 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002930s ]
  14. SELECT * FROM `article` WHERE `id` < 486005 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002506s ]
  15. SELECT * FROM `article` WHERE `id` < 486005 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002724s ]
0.227967s