当前位置:首页>python>第07篇|Python 文件操作 + JSON 处理:前后端数据交换全攻略

第07篇|Python 文件操作 + JSON 处理:前后端数据交换全攻略

  • 2026-03-22 07:56:06
第07篇|Python 文件操作 + JSON 处理:前后端数据交换全攻略

这篇文章带你掌握 Python 的文件读写和 JSON 处理——with openpathlibjson 模块,外加一个完整的实战案例,彻底打通前后端数据流通的"最后一公里"。


前言

前端开发者每天最熟悉的数据格式是什么?JSON。

从接口响应到配置文件,从 package.json 到 tsconfig.json,JSON 无处不在。而到了 Python 这边,你需要的核心技能就两个:

  1. 文件操作:怎么读写本地文件
  2. JSON 处理:怎么解析和生成 JSON

这两个技能结合起来,就能完成配置文件读取、数据持久化、本地缓存等大量日常任务。

这篇文章覆盖:

  • with open 读写文件(为什么要用 with)
  • 文件路径处理:pathlib 模块
  • JSON 文件的读写(json.load / json.dump)
  • 实战:读取 JSON 配置文件并处理数据

一、文件读写基础:open()

1.1 打开文件的模式

# 语法:open(文件路径, 模式, encoding=编码)f = open("data.txt", "r", encoding="utf-8")

常用模式:

模式
含义
文件不存在时
"r"
读取(默认)
报错
"w"
写入(覆盖)
自动创建
"a"
追加写入
自动创建
"r+"
读写
报错
"rb"
二进制读取
报错
"wb"
二进制写入
自动创建

1.2 为什么必须用 with?

传统写法(不推荐):

f = open("data.txt", "r", encoding="utf-8")content = f.read()f.close()  # ← 必须手动关闭,如果前面代码报错,这行就执行不到了!

with 写法(推荐):

with open("data.txt", "r", encoding="utf-8") as f:    content = f.read()# with 块结束后自动关闭文件,无论是否发生异常

with 语句是 Python 的上下文管理器,离开 with 块时会自动执行清理操作(关闭文件)。这和 JS 里的 try...finally 有异曲同工之妙:

// JS 手动确保关闭(类比)let fdtry {  fd = fs.openSync("data.txt", "r")  // 读取操作} finally {  if (fd !== undefined) fs.closeSync(fd)}

with 让代码更简洁,也更安全,务必养成习惯


二、文件读取

2.1 读取全部内容

# 读取整个文件为字符串with open("article.txt", "r", encoding="utf-8") as f:    content = f.read()    print(content)

2.2 按行读取

# 读取所有行为列表(每行是一个字符串,含换行符 \n)with open("data.txt", "r", encoding="utf-8") as f:    lines = f.readlines()# 去掉每行末尾的换行符lines = [line.strip() for line in lines]# 更优雅的写法:逐行迭代(内存效率更高)with open("data.txt", "r", encoding="utf-8") as f:    for line in f:        print(line.strip())

💡 大文件处理建议: 如果文件很大(几百 MB),不要用 f.read() 一次性读入内存,用 for line in f 逐行读取,内存友好。


三、文件写入

3.1 写入(覆盖模式)

# "w" 模式:每次都会覆盖原有内容with open("output.txt", "w", encoding="utf-8") as f:    f.write("第一行\n")    f.write("第二行\n")# 写入多行(writelines 不会自动添加换行符)lines = ["苹果\n", "香蕉\n", "樱桃\n"]with open("fruits.txt", "w", encoding="utf-8") as f:    f.writelines(lines)

3.2 追加模式

# "a" 模式:在文件末尾追加,不覆盖原有内容with open("log.txt", "a", encoding="utf-8") as f:    f.write("2025-03-01 10:00 - 任务执行成功\n")

3.3 同时读写

# "r+" 模式:读写,文件必须存在with open("data.txt", "r+", encoding="utf-8") as f:    content = f.read()    f.seek(0)         # 移回文件开头    f.write("修改后的内容")

四、pathlib:现代的路径处理方式

Python 3.4+ 引入的 pathlib 模块,让路径操作变得优雅。强烈推荐用它代替字符串拼接路径。

from pathlib import Path# 创建路径对象p = Path("data/config.json")# 常用属性print(p.name)       # config.json(文件名含扩展名)print(p.stem)       # config(文件名不含扩展名)print(p.suffix)     # .json(扩展名)print(p.parent)     # data(父目录)print(p.absolute()) # /home/user/project/data/config.json(绝对路径)
# 路径拼接(/ 运算符)base = Path("projects")config_path = base / "myapp" / "config.json"# projects/myapp/config.json# 对比字符串拼接(跨平台不安全)# config_path = "projects" + "/" + "myapp" + "/" + "config.json"  ← 不推荐# 检查文件/目录是否存在if config_path.exists():    print("文件存在")if config_path.is_file():    print("是文件")if config_path.is_dir():    print("是目录")# 创建目录(parents=True 递归创建,exist_ok=True 已存在不报错)output_dir = Path("output/2025/march")output_dir.mkdir(parents=True, exist_ok=True)# 列出目录下的所有文件data_dir = Path("data")for file in data_dir.iterdir():    print(file.name)# 用通配符匹配文件json_files = list(data_dir.glob("*.json"))# 配合 open 使用with open(config_path, "r", encoding="utf-8") as f:    content = f.read()# pathlib 原生读写(更简洁)text = config_path.read_text(encoding="utf-8")config_path.write_text("新内容", encoding="utf-8")

五、JSON 文件处理

5.1 四个核心函数

import json# json.loads() → 字符串转字典(s = string)data = json.loads('{"name": "Alice", "age": 28}')# json.dumps() → 字典转字符串(s = string)text = json.dumps({"name": "Alice", "age": 28})# json.load() → 从文件读取并解析(注意:没有 s)with open("data.json", "r", encoding="utf-8") as f:    data = json.load(f)# json.dump() → 序列化并写入文件(注意:没有 s)with open("output.json", "w", encoding="utf-8") as f:    json.dump(data, f)

记忆口诀:有 s 处理字符串,没有 s 操作文件

5.2 常用参数

data = {"name": "张三", "scores": [95, 87, 92], "active": True}# indent:缩进(让输出更易读)# ensure_ascii=False:支持中文(必加!)# sort_keys=True:按键名排序(可选)json_str = json.dumps(data, indent=2, ensure_ascii=False, sort_keys=True)print(json_str)# {#   "active": true,#   "name": "张三",#   "scores": [95, 87, 92]# }

⚠️ 重要: 处理含中文的 JSON 时,ensure_ascii=False 是必加参数,否则中文会被转成 \u5f20\u4e09 这样的 Unicode 转义序列。

5.3 读写 JSON 文件完整示例

import jsonfrom pathlib import Pathconfig_file = Path("config.json")# 写入 JSON 文件config = {    "app_name": "我的应用",    "version": "1.0.0",    "database": {        "host": "localhost",        "port": 5432,        "name": "mydb"    },    "features": ["auth", "api", "dashboard"]}with open(config_file, "w", encoding="utf-8") as f:    json.dump(config, f, indent=2, ensure_ascii=False)# 读取 JSON 文件with open(config_file, "r", encoding="utf-8") as f:    loaded_config = json.load(f)print(loaded_config["app_name"])          # 我的应用print(loaded_config["database"]["host"])  # localhost

六、实战:读取 JSON 配置并处理数据

我们来做一个完整的小案例:读取一份学生成绩 JSON 文件,计算平均分、找出最高分学生,并将结果写回新的 JSON 文件。

输入文件 students.json

{  "class": "2025届前端班",  "students": [    {"name": "Alice", "scores": {"math": 95, "english": 88, "python": 92}},    {"name": "Bob", "scores": {"math": 78, "english": 90, "python": 85}},    {"name": "Charlie", "scores": {"math": 88, "english": 76, "python": 94}},    {"name": "Diana", "scores": {"math": 92, "english": 95, "python": 89}}  ]}

处理脚本 analyze.py

import jsonfrom pathlib import Pathdef calculate_average(scores: dict) -> float:    """计算各科平均分"""    return sum(scores.values()) / len(scores)def analyze_students(input_file: str, output_file: str) -> None:    """分析学生成绩并输出报告"""    # 读取数据    with open(input_file, "r", encoding="utf-8") as f:        data = json.load(f)    class_name = data["class"]    students = data["students"]    # 处理每个学生的成绩    results = []    for student in students:        avg = calculate_average(student["scores"])        results.append({            "name": student["name"],            "scores": student["scores"],            "average": round(avg, 2)        })    # 按平均分排序(从高到低)    results.sort(key=lambda s: s["average"], reverse=True)    # 找出最高分学生    top_student = results[0]    # 构建报告    report = {        "class": class_name,        "total_students": len(results),        "top_student": top_student["name"],        "top_average": top_student["average"],        "rankings": results    }    # 写入结果文件    output_path = Path(output_file)    with open(output_path, "w", encoding="utf-8") as f:        json.dump(report, f, indent=2, ensure_ascii=False)    print(f"✅ 分析完成!结果已保存到 {output_file}")    print(f"🏆 最高分:{top_student['name']}(平均 {top_student['average']} 分)")if __name__ == "__main__":    analyze_students("students.json", "report.json")

运行结果 report.json

{  "class": "2025届前端班",  "total_students": 4,  "top_student": "Alice",  "top_average": 91.67,  "rankings": [    {"name": "Alice", "scores": {...}, "average": 91.67},    {"name": "Diana", "scores": {...}, "average": 92.0},    ...  ]}

七、常见错误处理

import jsonfrom pathlib import Pathdef safe_read_json(filepath: str) -> dict | None:    """带错误处理的 JSON 读取"""    path = Path(filepath)    if not path.exists():        print(f"❌ 文件不存在:{filepath}")        return None    if path.suffix != ".json":        print(f"❌ 不是 JSON 文件:{filepath}")        return None    try:        with open(path, "r", encoding="utf-8") as f:            return json.load(f)    except json.JSONDecodeError as e:        print(f"❌ JSON 格式错误:{e}")        return None    except PermissionError:        print(f"❌ 没有读取权限:{filepath}")        return None

异常处理下一篇会详细讲,先有个印象。


小结

操作
代码
读取文本文件
with open(f, "r", encoding="utf-8") as f: f.read()
写入文本文件
with open(f, "w", encoding="utf-8") as f: f.write(...)
追加写入
with open(f, "a", encoding="utf-8") as f: f.write(...)
路径拼接
Path("dir") / "subdir" / "file.json"
JSON 字符串解析
json.loads(string)
Python → JSON 字符串
json.dumps(data, indent=2, ensure_ascii=False)
读 JSON 文件
json.load(f)
写 JSON 文件
json.dump(data, f, indent=2, ensure_ascii=False)

3 个必记要点:

  1. 始终用 with open(...) 而不是手动 open() + close()
  2. 中文 JSON 必加 ensure_ascii=False
  3. 路径操作用 pathlib.Path,跨平台安全,API 优雅

下篇预告

第 08 篇:Python 异常处理:写出不会崩溃的代码

程序不可避免会遇到错误。下一篇讲 try-except-finally,教你写出健壮的代码——我们还会把这一篇的 JSON 读写代码包上完整的异常处理,形成可直接用于生产的代码模板。


最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 10:01:37 HTTP/2.0 GET : https://f.mffb.com.cn/a/481166.html
  2. 运行时间 : 0.106777s [ 吞吐率:9.37req/s ] 内存消耗:4,525.34kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=38d5090b32242ab084e732005549c873
  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.000801s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001464s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000646s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000640s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001319s ]
  6. SELECT * FROM `set` [ RunTime:0.000614s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001302s ]
  8. SELECT * FROM `article` WHERE `id` = 481166 LIMIT 1 [ RunTime:0.002497s ]
  9. UPDATE `article` SET `lasttime` = 1774576897 WHERE `id` = 481166 [ RunTime:0.005862s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000531s ]
  11. SELECT * FROM `article` WHERE `id` < 481166 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000851s ]
  12. SELECT * FROM `article` WHERE `id` > 481166 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001487s ]
  13. SELECT * FROM `article` WHERE `id` < 481166 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.005946s ]
  14. SELECT * FROM `article` WHERE `id` < 481166 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.005875s ]
  15. SELECT * FROM `article` WHERE `id` < 481166 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001215s ]
0.108393s