当前位置:首页>Excel>pandas读写数据——一行代码搞定Excel和CSV

pandas读写数据——一行代码搞定Excel和CSV

  • 2026-08-23 23:24:28
pandas读写数据——一行代码搞定Excel和CSV

作者:许灼灼

pandas读写数据——一行代码搞定Excel和CSV

作者:许灼灼

一、课堂故事

「上节课我们认识了 DataFrame,」我翻开课件,「大家还记得怎么创建一个 DataFrame 吗?」

小杰举手:「用字典!pd.DataFrame(字典) 就行!」

「没错。但我想问你们一个问题——」我把屏幕切到一个新建的 Python 文件,「如果班主任给你一个 Excel 成绩单,50 个学生,你要先手动把 50 行数据敲进字典,再 pd.DataFrame() 吗?」

全班沉默了三秒。

小婉小声说:「那……也太累了吧。」

「没错。手动建字典适合学习时练手,但真实场景里,数据都在文件里。pandas 的强大之处在于——它可以直接读文件。」

我在屏幕上输入:

import pandas as pd df = pd.read_excel("成绩单.xlsx") print(df.head()) 

回车——屏幕上直接打印出成绩单的前 5 行,整整齐齐。

「一行。read_excel,一行代码,50 个学生的数据全部进了 DataFrame。还记得 openpyxl 怎么读的吗?」

小杰翻着笔记:「load_workbook → wb.active → iter_rows 遍历……至少五六行。」

「对。今天我们就来学 pandas 的读写四件套——读 Excel、读 CSV、写 Excel、写 CSV。学完你会明白,为什么说 pandas 是'先苦后甜'里那个'甜'。」


二、概念解释

读写四件套

pandas 读写文件就四个函数,两两配对:

操作
读文件(进 DataFrame)
写文件(出 DataFrame)
Excel
pd.read_excel("文件.xlsx")df.to_excel("文件.xlsx", index=False)
CSV
pd.read_csv("文件.csv")df.to_csv("文件.csv", index=False)

就这四个。读进来是 DataFrame,写出去是文件。没有遍历,没有循环,没有逐格操作。

和 openpyxl / csv 模块的对比

维度
openpyxl / csv
pandas
读 Excel
load_workbook → active → iter_rows 遍历
pd.read_excel()
 一行
写 Excel
Workbook → append 逐行 → save
df.to_excel()
 一行
读 CSV
open → csv.reader → 逐行遍历
pd.read_csv()
 一行
写 CSV
open → csv.writer → writerows
df.to_csv()
 一行
思维方式
格子思维(逐格操作)
整表思维(整张表一起搬)

index 参数

你可能注意到写文件时都有个 index=False。这又是啥?

DataFrame 自带一个行号索引(0, 1, 2, 3...),就像 Excel 左边的行号。写文件时如果不加 index=False,pandas 会把这个行号也写进文件——多出一列没用的数字。加上 index=False 就是告诉它:「行号别写,我只要数据。」


三、拆开看

3.1 read_excel——一行读 Excel

先准备一个 成绩单.xlsx,内容如下:

姓名
语文
数学
英语
张三
85
92
78
李四
78
88
90
王芳
92
95
85
赵六
65
72
80

用 openpyxl 读(模块五学过的):

from openpyxl import load_workbook wb = load_workbook("成绩单.xlsx") ws = wb.active for row in ws.iter_rows(min_row=2, values_only=True):     name, chinese, math, english = row     print(name, chinese, math, english) 

6 行代码,逐行遍历,手动解包。

用 pandas 读:

import pandas as pd df = pd.read_excel("成绩单.xlsx") print(df.head()) 

2 行。完事。

输出:

   姓名  语文  数学  英语 0  张三  85  92  78 1  李四  78  88  90 2  王芳  92  95  85 3  赵六  65  72  80 

「等一下,」小婉举手,「它怎么知道第一行是表头?」

好问题。read_excel 默认把第一行当表头(列名),下面的行当数据。你不用告诉它,它自己判断。

如果你想指定某一行当表头,用 header 参数:

# 默认 header=0,第一行当表头 df = pd.read_excel("成绩单.xlsx", header=0) # 如果没有表头,第一行就是数据 df = pd.read_excel("成绩单.xlsx", header=None) 

如果有多个工作表,用 sheet_name 指定:

# 读第二个工作表(按索引) df = pd.read_excel("成绩单.xlsx", sheet_name=1) # 按名字读 df = pd.read_excel("成绩单.xlsx", sheet_name="期中考试") 

3.2 read_csv——一行读 CSV

还记得模块四学的 CSV 吗?用 csv 模块读:

import csv with open("成绩单.csv", encoding="utf-8-sig") as f:     reader = csv.reader(f)     header = next(reader)  # 读表头     for row in reader:         print(row) 

5 行,还要手动跳表头。

用 pandas 读:

import pandas as pd df = pd.read_csv("成绩单.csv") print(df.head()) 

2 行。而且 read_csv 和 read_excel 的用法几乎一模一样——读进来都是 DataFrame,后续操作完全相同。

「老师,CSV 文件如果有中文乱码怎么办?」小杰问。

和模块四一样,加 encoding 参数:

df = pd.read_csv("成绩单.csv", encoding="utf-8-sig") 

如果是 Windows 记事本保存的文件,可能需要:

df = pd.read_csv("成绩单.csv", encoding="gbk") 

3.3 to_excel——一行写 Excel

现在反过来——把 DataFrame 写成 Excel 文件。

用 openpyxl 写(模块五学过的):

from openpyxl import Workbook wb = Workbook() ws = wb.active ws.append(["姓名", "语文", "数学", "英语"]) ws.append(["张三", 85, 92, 78]) ws.append(["李四", 78, 88, 90]) wb.save("新成绩单.xlsx") 

6 行,逐行 append。

用 pandas 写:

import pandas as pd df = pd.DataFrame({     "姓名": ["张三", "李四"],     "语文": [85, 78],     "数学": [92, 88],     "英语": [78, 90] }) df.to_excel("新成绩单.xlsx", index=False) 

一行 to_excel 搞定。打开文件,表头、数据、格式全有了。

注意那个 index=False——如果不加:

df.to_excel("新成绩单.xlsx") 

写出来的文件会多一列无名的数字(0, 1),就是 DataFrame 的行号。加了 index=False 就干净了。

如果文件已存在,to_excel 会直接覆盖,不问你。要小心。

3.4 to_csv——一行写 CSV

写 CSV 同理:

用 csv 模块写(模块四学过的):

import csv with open("新成绩单.csv", "w", newline="", encoding="utf-8-sig") as f:     writer = csv.writer(f)     writer.writerow(["姓名", "语文", "数学", "英语"])     writer.writerow(["张三", 85, 92, 78])     writer.writerow(["李四", 78, 88, 90]) 

5 行。

用 pandas 写:

df.to_csv("新成绩单.csv", index=False, encoding="utf-8-sig") 

一行。index=False 不写行号,encoding="utf-8-sig" 让 Excel 打开不乱码——和模块四一模一样的道理。

3.5 读写四件套对比总表

到这里四件套全学完了,做个总对比:

操作
旧方式(模块四/五)
pandas
代码量对比
读 Excel
load_workbook + iter_rows
pd.read_excel()
6行 → 1行
读 CSV
open + csv.reader + next
pd.read_csv()
5行 → 1行
写 Excel
Workbook + append + save
df.to_excel(index=False)
6行 → 1行
写 CSV
open + csv.writer + writerow
df.to_csv(index=False)
5行 → 1行

「所以之前学的 openpyxl 和 csv 都白学了?」小婉问。

「当然没有白学。」我笑了,「第一,你通过 openpyxl 理解了 Excel 的结构——工作簿、工作表、单元格。第二,你知道了'手动方式'有多麻烦,现在看到 pandas 一行搞定才会有'哇'的感觉。第三,有些精细操作(比如设置单元格颜色、合并单元格)pandas 做不到,还得靠 openpyxl。」

「工具没有好坏,只有适合不适合。日常读写数据用 pandas,精细调格式用 openpyxl。」

3.6 完整示例——读成绩单→算总分→写新文件

把四件套串起来,做一个真实场景:读 Excel 成绩单 → 算总分和平均分 → 写成新的 Excel 文件 + CSV 文件。

import pandas as pd # 第1步:读 Excel df = pd.read_excel("成绩单.xlsx") print("读取成功!共", len(df), "个学生") print(df) # 第2步:算总分和平均分 df["总分"] = df["语文"] + df["数学"] + df["英语"] df["平均分"] = df["总分"] / 3 df["平均分"] = df["平均分"].round(1)  # 保留1位小数 print("\n添加总分和平均分后:") print(df) # 第3步:按总分降序排序 df = df.sort_values("总分", ascending=False) print("\n按总分排名:") print(df) # 第4步:写成新的 Excel 文件 df.to_excel("成绩单_含总分排名.xlsx", index=False) print("\n已保存:成绩单_含总分排名.xlsx") # 第5步:同时写成 CSV 文件 df.to_csv("成绩单_含总分排名.csv", index=False, encoding="utf-8-sig") print("已保存:成绩单_含总分排名.csv") 

运行结果:

读取成功!共 4 个学生    姓名  语文  数学  英语 0  张三  85  92  78 1  李四  78  88  90 2  王芳  92  95  85 3  赵六  65  72  80 添加总分和平均分后:    姓名  语文  数学  英语  总分  平均分 0  张三  85  92  78  255  85.0 1  李四  78  88  90  256  85.3 2  王芳  92  95  85  272  90.7 3  赵六  65  72  80  217  72.3 按总分排名:    姓名  语文  数学  英语  总分  平均分 2  王芳  92  95  85  272  90.7 1  李四  78  88  90  256  85.3 0  张三  85  92  78  255  85.0 3  赵六  65  72  80  217  72.3 已保存:成绩单_含总分排名.xlsx 已保存:成绩单_含总分排名.csv 

「看到了吗?读文件、算总分、算平均分、排序、写 Excel、写 CSV——整个流程加起来不到 20 行代码。如果用 openpyxl 手写,光遍历和排序就得四五十行。」

「这就是'先苦后甜'——你先学会了苦的方式,才知道甜有多甜。」

小杰看着屏幕,缓缓点头:「我现在懂了。之前学 openpyxl 的时候觉得'还挺方便',现在看到 pandas 才知道什么叫真的方便。」


四、常见坑

坑1:read_excel 报错 ModuleNotFoundError

ModuleNotFoundError: No module named 'openpyxl' 

pandas 读 Excel 底层还是要调用 openpyxl,所以两个库都得装:

pip install pandas openpyxl 

只装 pandas 不装 openpyxl,读 Excel 就会报错。

坑2:to_excel 忘了 index=False

df.to_excel("成绩单.xlsx") 

打开文件发现多了一列无名的数字(0, 1, 2, 3...),就是 DataFrame 的行号索引。

解决:养成习惯,写文件永远带 index=False

坑3:to_csv 中文乱码

df.to_csv("成绩单.csv", index=False) 

用 Excel 打开发现中文全变乱码——和模块四一样的问题。

解决:加 encoding="utf-8-sig"

df.to_csv("成绩单.csv", index=False, encoding="utf-8-sig") 

坑4:to_excel 覆盖已有文件不提醒

df.to_excel("成绩单.xlsx", index=False) 

如果 成绩单.xlsx 已存在,pandas 直接覆盖,不问你。原来的数据全没了。

解决:写文件前确认文件名不冲突,或者先备份。

坑5:read_csv 编码错误

UnicodeDecodeError: 'utf-8' codec can't decode byte... 

默认用 utf-8 编码读,但文件可能是 gbk 编码(Windows 记事本保存的)。

解决:换编码:

df = pd.read_csv("成绩单.csv", encoding="gbk") 

常见编码就两种:utf-8-sig(推荐)和 gbk(Windows 记事本)。试一个不行就试另一个。


五、生活类比

搬家公司

想象你要搬家。

openpyxl / csv 模块 = 自己搬:

  • 一趟一趟搬箱子,每趟搬一个
  • 先搬张三的箱子,再搬李四的箱子……
  • 搬完还要清点数量、检查有没有丢
  • 50 个箱子 = 50 趟

pandas = 搬家公司来了:

  • 一辆大卡车开过来,把所有箱子一口气装上车
  • 到新家一口气卸完
  • 自动清点数量,不用你数
  • 50 个箱子 = 2 趟(装车 + 卸货)
搬家步骤
自己搬(openpyxl)
搬家公司(pandas)
装车(读文件)
一个一个搬上车
read_excel()
 一车装完
卸货(写文件)
一个一个搬下车
to_excel()
 一车卸完
清单编号
自己贴标签编号
index=False
 不要编号
搬错格式
找对应的工具
换个函数名就行

先苦后甜的意义

你可能会想:「既然 pandas 这么方便,为什么一开始要学 openpyxl?」

因为不经历苦,就不知道甜

如果你一上来就学 pandas,你会觉得「读 Excel 不就是 read_excel 吗,有什么难的?」——你不会 appreciate 它的方便。

但如果你先用 openpyxl 手动遍历了 50 行,手动解包、手动累加、手动写入——再看到 pandas 一行搞定,那个「哇」的瞬间,才是学习最珍贵的东西。

而且有些事情 pandas 做不了——设置单元格背景色、合并单元格、插入图片——这些精细操作还得靠 openpyxl。pandas 负责「快速搬数据」,openpyxl 负责「精细调格式」,分工合作。


六、练一练

基础题:读 CSV 并查看

准备一个 学生信息.csv 文件(用记事本或 Excel 创建):

姓名,年龄,班级 张三,17,一年一班 李四,16,一年二班 王芳,17,一年一班 赵六,16,一年三班 

用 pandas 读取这个文件,打印前 3 行和 shape。

提示pd.read_csv() + df.head(3) + df.shape

进阶题:读 Excel→算总分→写新文件

用本课的 成绩单.xlsx(或自己造一个),完成以下操作:

  1. 用 pandas 读取 Excel 文件
  2. 新增「总分」列 = 语文 + 数学 + 英语
  3. 按总分降序排序
  4. 写成新的 Excel 文件 成绩排名.xlsx(记得 index=False
  5. 同时写成 CSV 文件 成绩排名.csv(记得 encoding="utf-8-sig"

挑战题:pandas vs openpyxl 对比实验

两种方式完成同一个任务——读取 成绩单.xlsx,打印所有学生姓名和语文成绩:

方式一(openpyxl):

  • load_workbook
     → wb.active → iter_rows 遍历 → 打印

方式二(pandas):

  • pd.read_excel()
     → df[["姓名", "语文"]] → print()

对比两种方式的代码行数,写下你的感受。

参考答案(进阶题)

import pandas as pd # 读取 df = pd.read_excel("成绩单.xlsx") # 算总分 df["总分"] = df["语文"] + df["数学"] + df["英语"] # 排序 df = df.sort_values("总分", ascending=False) # 写 Excel df.to_excel("成绩排名.xlsx", index=False) # 写 CSV df.to_csv("成绩排名.csv", index=False, encoding="utf-8-sig") print("完成!") print(df) 

下篇预告
:pandas 数据分析——describe() 一键统计、sort_values 排序进阶、布尔筛选(df[df["语文"] > 80]),真正的数据分析来了!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-25 23:31:24 HTTP/2.0 GET : https://h.sjds.net/a/550976.html
  2. 运行时间 : 0.239188s [ 吞吐率:4.18req/s ] 内存消耗:4,429.93kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=004bcd6793b4201968ba3294833130d9
  1. /yingpanguazai/ssd/ssd1/www/h.sjds.net/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/h.sjds.net/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/h.sjds.net/runtime/temp/ad153693ed39fba6d1bda2fe72512cde.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000993s ] mysql:host=127.0.0.1;port=3306;dbname=h_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001333s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.007498s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.008192s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001583s ]
  6. SELECT * FROM `set` [ RunTime:0.002360s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001819s ]
  8. SELECT * FROM `article` WHERE `id` = 550976 LIMIT 1 [ RunTime:0.010684s ]
  9. UPDATE `article` SET `lasttime` = 1787671884 WHERE `id` = 550976 [ RunTime:0.007298s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.004478s ]
  11. SELECT * FROM `article` WHERE `id` < 550976 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000996s ]
  12. SELECT * FROM `article` WHERE `id` > 550976 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000871s ]
  13. SELECT * FROM `article` WHERE `id` < 550976 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002526s ]
  14. SELECT * FROM `article` WHERE `id` < 550976 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.005700s ]
  15. SELECT * FROM `article` WHERE `id` < 550976 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004690s ]
0.242557s