当前位置:首页>python>Python实现一个实用的批量脚本执行工具

Python实现一个实用的批量脚本执行工具

  • 2026-02-05 01:01:21
Python实现一个实用的批量脚本执行工具

用 Python 的 tkinter(注意:是 tkinter 不是 kinter,这是 Python 内置的 GUI 库,无需额外安装)制作一个可视化工具,实现批量执行脚本、提升工作效率。

下面我实现一个实用的批量脚本执行工具,核心功能包括:选择多个脚本文件(.py)、一键批量执行、实时显示执行日志(成功/失败信息),全程可视化操作,无需手动在终端输入命令,真正解放双手。

一、整体思路

  1. 用 tkinter 搭建可视化界面(选择文件、执行、清空日志按钮 + 文件列表 + 日志显示区域)
  2. 实现多文件选择功能(支持按住 Ctrl 多选 .py 脚本)
  3. 批量执行选中的 Python 脚本,通过 subprocess 模块调用系统命令执行
  4. 实时捕获每个脚本的执行结果,输出到界面日志区域,方便排查问题
  5. 增加基础的异常处理(文件不存在、无权限、脚本语法错误等)

二、完整可运行代码

import tkinter as tk
from tkinter import filedialog, scrolledtext, messagebox
import subprocess
import os
import sys

classBatchScriptExecutor:
def__init__(self, root):
# 初始化主窗口
        self.root = root
        self.root.title("Python 脚本批量执行工具 - 效率提升版")
        self.root.geometry("800x600")  # 窗口大小:宽800,高600

# 存储选中的脚本文件路径
        self.selected_scripts = []

# 搭建GUI界面
        self._build_ui()

def_build_ui(self):
"""构建可视化界面"""
# 第一排:选择脚本文件按钮
        self.select_btn = tk.Button(
            self.root,
            text="📂 选择Python脚本(可多选)",
            command=self.select_scripts,
            font=("微软雅黑"10),
            bg="
#4CAF50",
            fg="white"
        )
        self.select_btn.pack(pady=10, fill=tk.X, padx=20)

# 第二排:显示选中的脚本列表(带滚动条)
        tk.Label(self.root, text="✅ 已选中的脚本列表", font=("微软雅黑"10"bold")).pack(anchor=tk.W, padx=20)
        self.script_list_box = scrolledtext.ScrolledText(
            self.root,
            height=10,
            font=("Consolas"9),
            state=tk.DISABLED  # 初始不可编辑,仅用于显示
        )
        self.script_list_box.pack(pady=5, fill=tk.X, padx=20)

# 第三排:执行/清空按钮
        self.btn_frame = tk.Frame(self.root)
        self.btn_frame.pack(pady=10, fill=tk.X, padx=20)

        self.run_btn = tk.Button(
            self.btn_frame,
            text="▶️ 一键批量执行",
            command=self.run_batch_scripts,
            font=("微软雅黑"10),
            bg="#2196F3",
            fg="white"
        )
        self.run_btn.pack(side=tk.LEFT, padx=10)

        self.clear_btn = tk.Button(
            self.btn_frame,
            text="🗑 清空所有内容",
            command=self.clear_all,
            font=("微软雅黑"10),
            bg="#f44336",
            fg="white"
        )
        self.clear_btn.pack(side=tk.LEFT, padx=10)

# 第四排:执行日志显示区域
        tk.Label(self.root, text="📝 执行日志(实时更新)", font=("微软雅黑"10"bold")).pack(anchor=tk.W, padx=20)
        self.log_text = scrolledtext.ScrolledText(
            self.root,
            height=15,
            font=("Consolas"9),
            state=tk.DISABLED
        )
        self.log_text.pack(pady=5, fill=tk.BOTH, padx=20, expand=True)

defselect_scripts(self):
"""选择多个Python脚本文件"""
# 弹出文件选择对话框,支持多选 .py 文件
        files = filedialog.askopenfilenames(
            title="选择Python脚本文件",
            filetypes=(("Python Files""*.py"), ("All Files""*.*")),
            initialdir=os.getcwd()  # 初始目录为当前工作目录
        )

if files:
# 更新选中的脚本列表
            self.selected_scripts = list(files)
# 显示选中的文件到列表框
            self._update_script_list()
# 日志区域提示选择成功
            self._append_log(f"【提示】成功选择 {len(self.selected_scripts)} 个Python脚本文件\n")

def_update_script_list(self):
"""更新脚本列表显示"""
# 先启用列表框,编辑完成后禁用
        self.script_list_box.config(state=tk.NORMAL)
        self.script_list_box.delete(1.0, tk.END)  # 清空原有内容

for idx, script in enumerate(self.selected_scripts, 1):
# 显示:序号 + 文件名(完整路径)
            self.script_list_box.insert(tk.END, f"{idx}{os.path.abspath(script)}\n")

        self.script_list_box.config(state=tk.DISABLED)

defrun_batch_scripts(self):
"""批量执行选中的Python脚本"""
ifnot self.selected_scripts:
            messagebox.showwarning("警告""请先选择至少一个Python脚本文件!")
return

# 日志区域提示开始执行
        self._append_log("="*50 + "\n")
        self._append_log("【开始执行】批量脚本执行任务启动...\n")
        self._append_log("="*50 + "\n")

# 遍历每个选中的脚本,逐个执行
for idx, script_path in enumerate(self.selected_scripts, 1):
            script_name = os.path.basename(script_path)
            self._append_log(f"\n【正在执行】第 {idx} 个脚本:{script_name}\n")

try:
# 调用subprocess执行脚本,捕获输出和错误信息
# sys.executable 确保使用当前Python解释器执行,避免环境冲突
                result = subprocess.run(
                    [sys.executable, script_path],
                    stdout=subprocess.PIPE,
                    stderr=subprocess.PIPE,
                    encoding="utf-8",
                    timeout=300# 超时时间:5分钟(可根据脚本耗时调整)
                )

# 处理执行结果
if result.returncode == 0:
# 执行成功
                    self._append_log(f"【执行成功】{script_name} 运行完成!\n")
if result.stdout:
                        self._append_log(f"【脚本输出】\n{result.stdout}\n")
else:
# 执行失败(返回码非0)
                    self._append_log(f"【执行失败】{script_name} 运行出错!\n")
if result.stderr:
                        self._append_log(f"【错误信息】\n{result.stderr}\n")

except subprocess.TimeoutExpired:
                self._append_log(f"【执行超时】{script_name} 运行超过5分钟,已终止!\n")
except Exception as e:
                self._append_log(f"【未知错误】{script_name}{str(e)}\n")

# 执行完成提示
        self._append_log("\n" + "="*50 + "\n")
        self._append_log("【执行结束】批量脚本任务全部处理完毕!\n")
        self._append_log("="*50 + "\n")
        messagebox.showinfo("完成""批量脚本执行任务已全部结束!请查看日志详情。")

def_append_log(self, content):
"""向日志区域追加内容(实时更新)"""
# 先启用日志框,追加内容后禁用,防止用户手动编辑
        self.log_text.config(state=tk.NORMAL)
        self.log_text.insert(tk.END, content)
        self.log_text.see(tk.END)  # 自动滚动到末尾,显示最新日志
        self.log_text.config(state=tk.DISABLED)
# 强制刷新界面,确保日志实时显示
        self.root.update_idletasks()

defclear_all(self):
"""清空选中的脚本列表和日志内容"""
# 清空脚本列表
        self.selected_scripts = []
        self.script_list_box.config(state=tk.NORMAL)
        self.script_list_box.delete(1.0, tk.END)
        self.script_list_box.config(state=tk.DISABLED)

# 清空日志
        self.log_text.config(state=tk.NORMAL)
        self.log_text.delete(1.0, tk.END)
        self.log_text.config(state=tk.DISABLED)

        messagebox.showinfo("提示""已成功清空所有内容!")

if __name__ == "__main__":
# 启动GUI程序
    root = tk.Tk()
    app = BatchScriptExecutor(root)
    root.mainloop()

三、使用说明

1. 前置条件

  • Python 3.x(自带 tkinter,无需额外安装;如果提示缺少 tkinter,Windows/macOS 通常自带,Linux 可执行 sudo apt install python3-tk 安装)
  • 待执行的 .py 脚本需确保:
    • 有可执行权限(Windows 无需关注,Linux/macOS 可执行 chmod +x 脚本名.py
    • 脚本本身可独立运行(无缺失依赖、无路径错误等)

2. 操作步骤

  1. 复制上面的代码,保存为 batch_script_executor.py
  2. 打开终端,执行 python batch_script_executor.py,启动可视化工具
  3. 点击「📂 选择Python脚本(可多选)」,按住 Ctrl 键选择多个需要批量执行的 .py 文件
  4. 点击「▶️ 一键批量执行」,等待执行完成(日志区域实时显示进度)
  5. 执行完成后,可查看日志区分成功/失败的脚本,如需重新操作,点击「🗑 清空所有内容」即可

3. 核心功能解释

  1. 多文件选择:通过 filedialog.askopenfilenames() 实现,支持 .py 文件筛选,默认打开当前工作目录
  2. 批量执行:通过 subprocess.run() 调用当前 Python 解释器(sys.executable)执行脚本,避免环境冲突,同时捕获标准输出和错误输出
  3. 实时日志:通过 _append_log() 方法更新日志区域,自动滚动到末尾,且设置为不可编辑,防止误操作
  4. 异常处理:支持超时处理(5分钟)、未知错误捕获,弹窗提示关键操作,提升使用体验

4. 扩展优化建议(按需升级)

  • 增加「选择脚本文件夹」功能,批量执行文件夹下所有 .py 脚本
  • 增加「执行顺序调整」功能,支持上下移动脚本调整执行优先级
  • 增加「日志保存」功能,将执行日志导出为 .txt 文件
  • 增加「脚本依赖检查」功能,提前检测脚本所需的第三方库是否安装
  • 增加「后台执行」功能,不阻塞GUI界面(需使用多线程 threading

四、效果演示

  1. 启动工具后,界面整洁有序,包含所有核心功能按钮
  2. 选择多个脚本后,列表框会显示脚本的完整路径,方便核对
  3. 执行过程中,日志区域会实时打印每个脚本的执行状态,成功的会显示输出结果,失败的会显示错误信息
  4. 全部执行完成后,会弹出提示框,同时日志区域标记执行结束

总结

  1. 该工具基于 tkinter 实现可视化,无需额外安装依赖,开箱即用,核心是通过 subprocess 批量调用 Python 解释器执行脚本。
  2. 工具具备「选择脚本-批量执行-查看日志-清空内容」的完整流程,满足日常批量执行脚本的需求,有效提升工作效率。
  3. 可根据自身需求扩展功能(如文件夹批量选择、日志导出等),进一步解放双手,适配更复杂的使用场景。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-08 12:22:06 HTTP/2.0 GET : https://f.mffb.com.cn/a/472226.html
  2. 运行时间 : 0.157396s [ 吞吐率:6.35req/s ] 内存消耗:4,731.49kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=bdec01884ba0e98cd08d028f7810668b
  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.000536s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000698s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000412s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.001290s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000676s ]
  6. SELECT * FROM `set` [ RunTime:0.001659s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000661s ]
  8. SELECT * FROM `article` WHERE `id` = 472226 LIMIT 1 [ RunTime:0.012746s ]
  9. UPDATE `article` SET `lasttime` = 1770524526 WHERE `id` = 472226 [ RunTime:0.006497s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.009662s ]
  11. SELECT * FROM `article` WHERE `id` < 472226 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.002789s ]
  12. SELECT * FROM `article` WHERE `id` > 472226 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000518s ]
  13. SELECT * FROM `article` WHERE `id` < 472226 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.006146s ]
  14. SELECT * FROM `article` WHERE `id` < 472226 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.022844s ]
  15. SELECT * FROM `article` WHERE `id` < 472226 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.020381s ]
0.158883s