当前位置:首页>python>第345讲:用Python和VBA两种方案批量文件重命名与归类整理

第345讲:用Python和VBA两种方案批量文件重命名与归类整理

  • 2026-08-18 23:11:53
第345讲:用Python和VBA两种方案批量文件重命名与归类整理

场景:将数百张产品图片按SKU编码重命名并归类到子文件夹

做电商运营、仓储管理或者产品摄影的朋友,大概率都遇到过这种“绝望”时刻:

相机导出的几百张产品图,文件名全是 IMG_001.jpgDSC_002.png这种毫无意义的格式。而手头有一张Excel表,A列是旧文件名,B列是对应的SKU编码(比如 SKU-2024-001)。老板要求你:半小时内,把所有图片按SKU重命名,并且按品类(比如“男装”、“女装”、“配件”)放进不同的文件夹里。

手动改?点几百次鼠标,不仅慢,还容易漏。今天我们就用PythonVBA两种方案,彻底解决这个痛点。


一、需求拆解与准备工作

在开始写代码前,我们先把逻辑理清楚。这是避免写出“屎山代码”的关键一步。

1. 数据准备

假设你的文件夹结构是这样的:

D:\ProductPhotos\│  IMG_001.jpg│  IMG_002.jpg│  IMG_003.jpg│  mapping.xlsx

mapping.xlsx的内容如下:

旧文件名 (OldName)

SKU编码 (SKU)

品类 (Category)

IMG_001.jpg

SKU-2024-001

男装

IMG_002.jpg

SKU-2024-002

女装

IMG_003.jpg

SKU-2024-003

配件

2. 逻辑流程

无论是Python还是VBA,核心逻辑都是一致的:

  1. 读取映射表:从Excel中读取“旧文件名-SKU-品类”的对应关系。

  2. 遍历文件:扫描目标文件夹中的所有图片文件。

  3. 匹配与重命名:找到旧文件名对应的行,将其重命名为 SKU-2024-001.jpg

  4. 创建目录:根据“品类”字段,创建对应的子文件夹(如“男装”)。

  5. 移动文件:将重命名后的文件移动到对应的子文件夹中。


二、Python方案:现代化与优雅的 pathlib

Python在处理文件批量操作时,有两个流派:一个是传统的 osshutil,另一个是更现代的 pathlib强烈推荐使用 pathlib,因为它把路径当成对象来处理,代码可读性极高,且跨平台兼容性更好(不用操心Windows的反斜杠 \` 和Mac/Linux的正斜杠/` 问题)。

1. 核心库导入

import pandas as pdfrom pathlib import Pathimport shutil

2. 完整代码实现

下面的代码不仅实现了功能,还加入了异常处理和日志打印,这是专业脚本的标配。

def organize_product_photos(excel_path, photo_dir):    """    批量重命名并归类产品图片    :param excel_path: 映射表Excel路径    :param photo_dir: 图片文件夹路径    """    # 1. 读取Excel映射表    try:        df = pd.read_excel(excel_path)        # 清洗列名,去除可能存在的空格        df.columns = df.columns.str.strip()    except Exception as e:        print(f"读取Excel失败:{e}")        return    # 2. 定位图片文件夹    photo_path = Path(photo_dir)    # 3. 遍历DataFrame中的每一行映射关系    for index, row in df.iterrows():        old_name = row['旧文件名']        sku = row['SKU编码']        category = row['品类']        # 构建旧文件的完整路径        old_file = photo_path / old_name        # 检查旧文件是否存在        if not old_file.exists():            print(f"警告:文件 {old_name} 不存在,跳过。")            continue        # 4. 构建新文件名(保留原扩展名)        # 获取文件后缀,例如 .jpg        suffix = old_file.suffix        new_name = f"{sku}{suffix}"        # 5. 创建分类子文件夹        # mkdir(parents=True): 如果父目录不存在则创建        # exist_ok=True: 如果目录已存在则不报错        category_dir = photo_path / category        category_dir.mkdir(exist_ok=True)        # 6. 构建目标文件路径        target_file = category_dir / new_name        # 7. 移动并重命名        try:            # shutil.move 既可以移动也可以重命名            shutil.move(str(old_file), str(target_file))            print(f"成功:{old_name} -> {category}/{new_name}")        except Exception as e:            print(f"处理 {old_name} 失败:{e}")    print("所有文件处理完毕!")# 执行函数if __name__ == "__main__":    excel_file = r"D:\ProductPhotos\mapping.xlsx"    photos_folder = r"D:\ProductPhotos"    organize_product_photos(excel_file, photos_folder)

3. Python代码深度解析

  • pathlib的优势photo_path / old_name这种写法非常直观,避免了 os.path.join()那种繁琐的字符串拼接。

  • shutil.move:这个函数很强大,如果源路径和目标路径在同一个磁盘,它相当于重命名;如果在不同磁盘,它会先复制再删除源文件。

  • 异常处理try...except结构保证了即使某个文件处理失败,程序也不会崩溃,而是继续处理下一个文件。

  • __name__ == "__main__":这是Python的最佳实践,确保代码在被导入为模块时不会自动执行。

4. 进阶优化(干货)

如果你不想依赖 pandas(比如服务器环境没有安装),可以用 csv模块替代Excel读取:

import csvdef read_mapping_csv(csv_path):    mapping = []    with open(csv_path, 'r', encoding='utf-8-sig'as f: # utf-8-sig解决Windows下BOM问题        reader = csv.DictReader(f)        for row in reader:            mapping.append(row)    return mapping

三、VBA方案:Excel原生环境的利器

对于大多数办公室白领来说,VBA是离数据最近的开发工具。不需要安装Python环境,直接在Excel里就能跑。

1. 启用FileSystemObject (FSO)

VBA默认没有开启文件系统对象,需要手动引用:

  1. 打开VBA编辑器 (Alt + F11)。

  2. 点击菜单栏 工具-> 引用

  3. 勾选 Microsoft Scripting Runtime

2. 完整代码实现

这段代码可以直接放在Excel的VBA模块中运行。

Sub OrganizeProductPhotos()    Dim FSO As Scripting.FileSystemObject    Dim ws As Worksheet    Dim photoDir As String    Dim lastRow As Long    Dim i As Long    Dim oldName As String, sku As String, category As String    Dim oldFile As Object, categoryFolder As Object    Dim fileExt As String    ' 1. 设置工作表和路径    Set ws = ThisWorkbook.Sheets("Sheet1") ' 修改为你的Sheet名    photoDir = "D:\ProductPhotos\" ' 修改为你的图片路径    ' 2. 创建FileSystemObject    Set FSO = New Scripting.FileSystemObject    ' 3. 获取最后一行    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row    ' 4. 循环处理每一行    For i = 2 To lastRow ' 假设第一行是表头        oldName = ws.Cells(i, 1).Value ' A列:旧文件名        sku = ws.Cells(i, 2).Value    ' B列:SKU编码        category = ws.Cells(i, 3).Value ' C列:品类        ' 检查旧文件是否存在        If FSO.FileExists(photoDir & oldName) Then            ' 5. 获取文件扩展名            fileExt = FSO.GetExtensionName(photoDir & oldName)            ' 6. 创建分类文件夹            If Not FSO.FolderExists(photoDir & category) Then                FSO.CreateFolder (photoDir & category)            End If            ' 7. 移动并重命名            ' Name 语句可以跨文件夹移动并重命名            On Error Resume Next ' 防止重名文件报错中断            Name photoDir & oldName As photoDir & category & "\" & sku & "." & fileExt            If Err.Number <> 0 Then                Debug.Print "重命名失败: " & oldName & " -> " & sku & "." & fileExt                Err.Clear            Else                Debug.Print "成功: " & oldName & " -> " & category & "\" & sku & "." & fileExt            End If            On Error GoTo 0        Else            Debug.Print "文件不存在: " & oldName        End If    Next i    MsgBox "处理完毕!"End Sub

3. VBA代码深度解析

  • FileSystemObject (FSO):这是VBA操作文件的瑞士军刀。FileExists检查文件,FolderExists检查文件夹,CreateFolder创建文件夹,GetExtensionName获取后缀。

  • Name语句:这是VBA特有的语法,用于重命名文件或移动文件。语法是 Name 原路径 As 新路径。它比FSO的 MoveFile方法更直接,但缺点是如果目标文件已存在,会报错,所以配合了 On Error Resume Next使用。

  • On Error Resume Next:VBA中的错误处理语句,遇到错误时跳过当前行继续执行,防止程序因单个文件错误而崩溃。


四、Python vs VBA:技术选型对照

这是本文的核心对照要点,帮助你在实际工作中做选择。

维度

Python (pathlibshutil)

VBA (FSOName)

代码风格

面向对象,路径是对象,链式调用优雅 (path.parent.mkdir())

过程式,字符串拼接路径,代码相对冗长

可读性

极高,接近自然语言,维护成本低

中等,需要熟悉VBA语法和FSO对象模型

环境依赖

需要安装Python及 pandas库(或用 csv模块)

零依赖,Windows系统自带,Excel原生支持

错误处理

try...except结构清晰,捕获异常类型明确

On Error语句较为粗暴,调试相对困难

跨平台

完美支持 (Windows, macOS, Linux)

仅限Windows

性能

处理海量文件(上万级)时性能优势明显

处理几千个文件尚可,上万级可能卡顿

适用场景

复杂的数据清洗、自动化运维、跨平台脚本

快速处理Excel相关的小工具、办公自动化

总结建议

  • 如果你是数据分析师开发者,或者文件量巨大,请选 Python

  • 如果你是行政、财务运营,只想在现有Excel里快速解决问题,请选 VBA


五、避坑指南(实战干货)

  1. 文件名编码问题:Windows系统经常遇到中文乱码。Python中读取文件时,如果遇到乱码,尝试指定编码 encoding='gbk'或 encoding='utf-8-sig'

  2. 文件占用问题:如果图片正在被Windows照片查看器打开,代码执行时会报错(文件被占用)。确保处理前关闭所有相关文件。

  3. 重名覆盖风险:上述代码均未处理“目标文件已存在”的情况。在生产环境中,建议加入判断:如果目标文件存在,要么跳过,要么在文件名后加 _1_2后缀。

  4. 路径末尾反斜杠:VBA中拼接路径时,很容易漏掉文件夹后的反斜杠 \`,导致路径变成D:\ProductPhotosIMG_001.jpg。使用FSO的BuildPath方法可以避免这个问题:FSO.BuildPath(photoDir, oldName)`。


六、课后练习

为了检验你对本文知识点的掌握程度,请完成以下选择题:

  1. 在Python的 pathlib模块中,用于连接路径和文件名的最佳方式是?

    A. os.path.join(path, name)

    B. path + "\\" + name

    C. path / name

    D. path.append(name)

  2. VBA中,FileSystemObject(FSO) 获取文件扩展名(如 "jpg")的方法是?

    A. FSO.GetFileName

    B. FSO.GetExtensionName

    C. FSO.GetFileType

    D. FSO.Extension

  3. 在Python中,使用 shutil.move(src, dst)时,如果 dst是一个已经存在的文件夹路径,会发生什么?

    A. 报错:文件已存在

    B. 将 src移动到 dst文件夹内

    C. 覆盖 dst文件夹

    D. 什么都不会发生

  4. VBA中的 Name语句主要功能是?

    A. 仅能重命名文件,不能移动文件

    B. 仅能移动文件,不能重命名

    C. 可以同时重命名和移动文件

    D. 用于定义变量名称

  5. 在处理批量文件重命名时,为了防止程序因单个文件处理失败而整体崩溃,Python和VBA分别通常采用什么机制?

    A. Python用 On Error Resume Next,VBA用 try...except

    B. Python用 try...except,VBA用 On Error Resume Next

    C. 两者都用 if...else判断

    D. 两者都没有内置的错误处理机制


答案

  1. Cpathlib重载了 /运算符,使得路径拼接更加直观和安全。

  2. BGetExtensionName方法专门用于返回文件扩展名。

  3. B。如果目标是一个目录,shutil.move会将源文件移动到该目录下。

  4. C。VBA的 Name语句语法为 Name 原路径 As 新路径,新路径可以包含新的文件夹位置和新文件名。

  5. B。这是两者在错误处理语法上的核心区别。


如果这篇文章帮你解决了工作中的实际问题,欢迎点赞、在看、转发三连!有任何关于办公自动化的难题,也可以在评论区留言,我们下期再见。


最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 14:34:18 HTTP/2.0 GET : https://f.mffb.com.cn/a/509698.html
  2. 运行时间 : 0.180082s [ 吞吐率:5.55req/s ] 内存消耗:4,731.31kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=6d5c91400d8377d531ce5ad986e7f16f
  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.000889s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001564s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000598s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000570s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001174s ]
  6. SELECT * FROM `set` [ RunTime:0.000536s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001281s ]
  8. SELECT * FROM `article` WHERE `id` = 509698 LIMIT 1 [ RunTime:0.001023s ]
  9. UPDATE `article` SET `lasttime` = 1787294058 WHERE `id` = 509698 [ RunTime:0.002390s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000485s ]
  11. SELECT * FROM `article` WHERE `id` < 509698 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001045s ]
  12. SELECT * FROM `article` WHERE `id` > 509698 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.004155s ]
  13. SELECT * FROM `article` WHERE `id` < 509698 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.008072s ]
  14. SELECT * FROM `article` WHERE `id` < 509698 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002120s ]
  15. SELECT * FROM `article` WHERE `id` < 509698 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.010236s ]
0.183798s