当前位置:首页>python>Python之文件读操作

Python之文件读操作

  • 2026-06-28 08:59:06
Python之文件读操作

第十章 Python之文件读操作

1. 文件的分类

无论是图片还是文档,硬盘里都是 0 和 1唯一的区别在于:软件读取这串 0 和 1 时,用的是哪本“翻译词典”?

1.1 纯文本文件

  1. 规则 = “字符编码表”(如 UTF-8)。
  2. 存储逻辑:逐字对照编码表,把字符(字母、汉字)转为二进制;读取时反向解码为文字。
  3. 致命特征:极度“纯粹”——只存文字内容,绝对不存字体、颜色、大小等任何格式指令。
  4. 呈现结果:任何基础编辑器(记事本)都能直接打开,呈现人类可读的纯文字
  5. 常见后缀.txt.py.md.html(源码层面仍是纯字符)。

1.2 二进制文件

  1. 规则 = “私有格式规范”(如图片压缩算法、音频采样协议).
  2. 存储逻辑:不关心字符编码,而是按照特定格式把结构体(像素点、采样率、章节偏移量)直接转为二进制。
  3. 致命特征:结构复杂`——内部数据有特定长度和位置含义(如“前4字节是宽度,后4字节是高度”).
  4. 呈现结果:必须由专用软件按协议解析,结果是图片、视频或压缩包;强行用记事本打开会变乱码
  5. 常见后缀.jpg.mp3.docx(本质是 ZIP 压缩包,属二进制)、.exe

1.3 二者区分

用系统自带的记事本打开,保存后再关闭,文件还能正常使用吗?

  • 能正常用(内容没丢、没损坏) → 纯文本文件(因为记事本只改字符,不改结构)。
  • 完全报废(打不开、乱码或损毁) →二进制文件(因为记事本强行插入了 UTF-8 字符标记,破坏了原有的私有格式结构)。

误区:

  • 很多人误以为 .docx 或 .xlsx 是文本,因为它们有字——大错特错。它们是ZIP 压缩包(二进制),里面虽然包裹着 XML 文本片段,但整个文件必须由 Office 拆包解析,所以归属二进制。后缀永远骗人,解析规则才是唯一真理。

2. 绝对路径vs相对路径

核心本质:路径就是寻址。两者的唯一区别在于我从哪儿开始找

2.1 绝对路径

  1. 起点 : 根目录
  2. 从文件系统的最顶层(即“根”)出发,逐级向下,完整无遗漏地描述目标位置。
  3. 关键特征:像身份证号一样,在整台电脑中唯一且不变
  4. 操作系统的起点差异
    1. Windows:以盘符为根(如 C:\ 或 D:\)。
    2. Linux / macOS:以斜杠 / 为根(没有盘符概念)

2.2 相对路径

  1. 起点 :当前工作目录
  2. 以你此时此刻所在的文件夹为参照物,描述目标的相对位置。
  3. 关键特征:像导航语音,结果随“我当前在哪”而变化。你必须搞懂两个特殊符号:
  4. .(一个点):代表当前目录(通常可省略)。
  5. ..(两个点):代表上一级目录

2.3 二者区分

绝对路径管绝对,相对路径看相对。

  • 何时用绝对:写系统服务、定时任务(Crontab)或引用外部固定资源时。因为环境不可控,用绝对路径最稳妥,防止找不到文件。
  • 何时用相对:写项目代码时。因为项目文件夹可能会被拷贝到别人的电脑(盘符变了),使用相对路径可以保证代码零修改直接运行(即“可移植性”)。

3. Python操作文件的标准流程

标准流程成如下:

  1. 创建文件对象
  2. 操作文件(读取、写入 等)
  3. 关闭文件

Python中可以只使用两步完成:

  1. 使用 with 语句创建上下文(自动管理资源,退出即关闭,无需手动 close())。
  2. 在缩进块内操作文件。
# 正确姿势(自动关闭)
with open('test.txt''r', encoding='utf-8'as f:
    content = f.read()
# 退出缩进后,文件句柄自动释放

3.1 open函数

  1. file(文件路径)
  • 支持绝对路径(如 D:/data/a.txt)和相对路径(如 ./a.txt)。
  • 跨平台建议:路径字符串前加 r 防止转义,如 r'C:\data\a.txt',或用正斜杠 /(Windows 也兼容)。
  1. mode(打开模式),模式由三组互斥选项各选其一组成:
类别
选项
含义
读写主模式
r
只读
(默认)。文件必须存在,否则报错 FileNotFoundError
w
只写
文件存在则清空(截断),不存在则新建。危险操作,注意备份!
x
独占创建
。写模式,但文件已存在则抛出 FileExistsError,防止覆盖。
a
追加
。文件存在则末尾追加,不存在则新建。无法读取,只能写。
格式模式
t
文本模式
(默认)。读写字符串 str,需指定 encoding
b
二进制模式
。读写字节流 bytes(如图片、音频),禁止传 encoding 参数
附加标识
+
更新模式
(读写兼得)。搭配使用:r+(读写,指针在开头)、w+(清空读写)、a+(追加读写,指针在末尾)。

常用组合速查:

  • 'r':读文本(最常用)
  • 'w':写文本(覆盖)
  • 'a':追加文本
  • 'rb':读二进制(如图片)
  • 'wb':写二进制
  • 'r+':读写文本(修改既有文件)
  1. encoding(字符编码)
  • 仅在 t(文本模式)下有效b 模式下传此参数会报错。
  • 铁律:永远显式指定 encoding='utf-8'。
    • 因为 Windows 默认编码是 gbk,而 Linux/macOS 是 utf-8。不指定的话,你的代码在别人电脑上大概率 UnicodeDecodeError 乱码报错。

注意事项:

  1. w 模式要当心:它上来就清空文件。如果想在原文件基础上修改,用 r+ 或先读取再写入,千万别直接用 w
  2. seek 移动指针:用 r+ 写入时,内容是从当前指针位置覆盖写入的,不是插入。想追加直接用 a
  3. 大文件别用 read():读取几 GB 文件时,read() 会把内存撑爆。应用 for line in f: 逐行迭代,内存友好。

4. 读取文件

4.1 read方法

概述:使用文件对象的read方法,读取文件中的内容。其本质是操作文件内部的指针,每次读取都会将指针向后移动。

方法说明:

  1. read(size)中的size是可选参数。
    1. 若不传递size参数,表示:读取文件中所有的内容(内存警告:如果文件有 5GB,这一句直接撑爆内存。仅适用于几 MB 以内的配置文件或文本!)。
    2. 若传递了size参数,表示:读取文件中指定个数的字符,或指定大小的字节。
  2. read会从上一次read的位置继续读取,若到达文件末尾后继续读取,将返回空字符串。
    1. read 会从上一次读取结束的位置继续往后读。
    2. 当指针到达文件末尾后继续调用 read,将返回空值(文本模式下为 '',二进制模式下为 b''),这是判断文件是否读完的唯一标志。
# 读取操作:使用『文件对象』的 read 方法,读取文件中的内容。
# read 方法说明:
#   1.read(size)中的 size 是可选参数。
#      若不传递 size 参数,表示:读取文件中所有的内容(注意内存占用!)。
#      若传递了 size 参数,表示:读取文件中指定个数的字符,或指定大小的字节。
#   2.read 会从上一次 read 的位置继续读取(指针思想),若到达文件末尾后继续读取,将返回空字符串。
# region
# 第一步:创建[文件对象]
file = open(file='a.txt', mode='rt', encoding='utf-8')
# file = open('a.txt', 'rt', encoding='utf-8')
# file = open('D:/test/a.txt', 'rt', encoding='utf-8')
# file = open('D:/test/girl.jpg', 'rb')
# 第二步:操作文件(读取)
# 多次调用read去逐步读取文件
# r1 = file.read(2)
# r2 = file.read(3)
# r3 = file.read(4)
# r4 = file.read()
# print(r1, end='')
# print(r2, end='')
# print(r3, end='')
# print(r4, end='')

# 用循环配合多次read(对内存友好)
while True:
    result = file.read(10)
    if result == '':
        break
    print(result, end='')

# 第三步:关闭文件
file.close()
# endregion

4.2 readline方法

 概述:使用文件对象的readline方法,读取文件中的一行。其底层依赖于换行符(\n)作为行的结束标志,读取时会将换行符一并返回。

方法说明:

  1. readline(size) 中的size是可选参数。
    1. 若不传递size参数,表示:读取当前行直到遇到换行符 \n 的所有内容(包含末尾的换行符)
    2. 若传递了size参数,表示:限制当前行最多读取的字符数(文本模式)或字节数(二进制模式)
    3. 注意:size不是行数,而是单行内的截断长度。如果一行的长度超过 sizereadline(size) 只会返回该行的前 N 个字符,指针停留在该行中间,下一次调用会继续读取该行的剩余部分,而不会跳到下一行
  2. readline方法,同样从上一次读取结束的位置继续,当指针到达文件末尾后继续调用,返回空字符串(''),与 read() 的终止逻辑完全一致。

关于换行符的细节(容易被忽略)

关于换行符的细节(容易被忽略):

  • readline 返回的字符串包含行尾的换行符 \n。因此:
    • 使用 print(line) 会额外多打印一个空行(因为 print 自带换行)。
    • 推荐使用 print(line, end='')(示例中的写法)或 line.rstrip('\n') 来去除换行。
    • 慎用 strip():它会同时去除行首和行尾的空白字符(包括空格、制表符),可能会误删文本首尾的有意义空格。如果你的数据是纯文本且确定不需要首尾空格,用 strip() 没问题;否则请用 rstrip('\n') 只剥离换行符。
# 读取操作:使用文件对象的 readline 方法,读取文件中的一行。
# readline 方法说明:
#   1.readline(size) 中的 size 是可选参数。
#      若不传递 size 参数,表示:读取当前这一行所有的内容。
#      若传递了 size 参数,表示:表示读取当前行时,最多能读取的字符数,或字节数(size不是行数)。
#   2.readline 方法,也是从上一次位置继续读取,若到达文件末尾后继续读取,也是返回空字符串。
# region
# 第一步:创建『文件对象』
file = open('a.txt''rt', encoding='utf-8')

# 第二步:操作文件(读取)
# 依次调用readline逐行读取
# r1 = file.readline()
# r2 = file.readline()
# r3 = file.readline()
# r4 = file.readline()
# print(r1.strip())
# print(r2.strip())
# print(r3.strip())
# print(r4.strip())

# 通过循环配合readline逐行读取
while True:
    line = file.readline()
    if line == '':
        break
    # print(line.strip())
    print(line, end='')

# 第三步:关闭文件
file.close()

4.3 for 循环遍历文件对象

readline 是处理超大文本文件的利器,配合 while 循环能稳定控制内存峰值,且不受文件总大小影响。如果你只需要逐行遍历,直接用 for line in file: 更优雅,它是 readline 的语法糖封装。

# 读取操作:使用 for 循环直接遍历文件对象
# region
# 第一步:创建『文件对象』
file = open('a.txt''rt', encoding='utf-8')

# 第二步:操作文件(读取)
for line in file:
    print(line, end='')

# 第三步:关闭文件
file.close()
# endregion

4.4 readlines方法

概述:使用文件对象的readlines方法,一次性按读完,返回一个列表。列表中的每个元素,都对应文件中的一行,且每行末尾自带换行符\n

方法说明:

  1. readlines(hint) 中的hint是可选参数。
    1. 若不传递hint参数,表示:读取当前文件的所有行,将每一行作为列表的一个元素返回。
    2. 若传递了hint参数,表示:期望读取的字符个数 或 字节数(hint不是行数,而是字节/字符数的提示)。
  2. 返回的列表包含每行末尾的换行符 \n。处理时通常需要用 strip() 或 rstrip('\n') 去掉。
  3. 注意:由于readlines是一次性读取文件的所有内容,所以不适合读取体积较大的文件。
# 读取操作:使用文件对象的 readlines 方法,一次性按“行”读完,返回一个列表。
# readlines 方法说明:
#   1.readlines(hint) 中的 hint 是可选参数。
#       若不传递 hint 参数,表示:读取当前文件的所有行。
#       若传递了 hint 参数,表示:期望读取的【字符个数 或 字节数的上限】(hint不是行数)。
#   2.注意:由于 readlines 是一次性读取文件的所有内容,所以不适合读取体积较大的文件。
# region
# 第一步:创建『文件对象』
file = open('a.txt''rt', encoding='utf-8')

# 第二步:操作文件(读取)
result = file.readlines()
print(result)

# 第三步:关闭文件
file.close()
# endregion

总结readlines 是“全量快照”工具,适合小文件快速取用;readline 和 for line in file 是流水线工具,适合大文件稳吃。数据量未知时,优先选 for line in file:,它是 Python 官方推荐的最安全做法。

四种读取方法使用场景对比表

方法
适用场景
内存特点
推荐指数
read()
小配置文件(几KB)、需要一次性获取全部内容做整体处理的场景(如JSON解析、正则全文匹配)
全部加载
,小文件快捷高效;大文件极危险,内存瞬间撑爆
⭐⭐⭐(小文件)
❌(大文件)
readline()
超大日志文件、需要手动控制循环跳出时机的场景,或处理逻辑依赖当前行号的精确控制
逐行加载
,内存占用极低(仅缓存一行),稳吃GB级文件
⭐⭐⭐⭐
readlines()
文件体量中等(几十MB以内),且后续需要通过下标随机访问某一行(如 lines[0]lines[-1]
全部加载为列表
,每个字符串对象有额外开销,内存占用比 read() 更高
⭐⭐⭐(中等文件)
❌(大文件)
for line in file:99% 的文本逐行遍历场景
,无论文件大小,兼顾安全与简洁,是 Python 官方首选
底层使用迭代器(惰性加载),内存占与 readline()同等低,代码却更简洁
⭐⭐⭐⭐⭐(最推荐)

小文件用read(),大文件无脑上for line in file,需要下标用readlines(),需要手动控制循环用 readline()

4.5 最佳实践

概述:更推荐使用with上下文管理器,结合for循环遍历,逐行读取文件。

# 最佳实践:使用 with 上下文管理器,结合for循环遍历,逐行读取文件。
with open('a.txt''rt', encoding='utf-8'as file:
for line in file:
        print(line, end='')

5. 关于with语句的扩展

概述:Python 中的with主要用于管理程序中需要成对出现的操作,例如:

  1. 上锁 / 解锁
  2. 打开 / 关闭
  3. 借用 / 归还

使用with的目标:编码者只管做具体的事,进入离开的事,让 Python 自动处理。

# 语法格式:
with 能得到一个上下文管理器的表达式 as 变量:
    具体的事1
    具体的事2
    具体的事3

上下文管理器协议:

  1. __enter__ 方法:with中的代码执行之前调用,其返回值会赋值给as后的变量。
  2. __exit__  方法:with中的代码执行结束后调用(无论是with中否出现异常都会调用)。
# 定义一个 Person 类,让其实例对象遵循:上下文管理器协议
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def speak(self):
        print(f'我叫{self.name},年龄是{self.age}')

    def __enter__(self):
        print('-----我是进入的逻辑-----')
        return self

    # 当 with 中的代码发生异常时,__exit__ 方法的返回值规则如下:
    #   返回“真”:表示异常【已经】被处理,异常【不会】被继续抛出。
    #   返回“假”:表示异常【没有】被处理,异常【会】被继续抛出。
    def __exit__(self, exc_type, exc_val, exc_tb):
        print('-----我是离开的逻辑-----')
        # exc_type  : 异常类型
        # exc_val   : 异常对象
        # exc_tb    : 异常追踪信息
        if exc_type:
            print(f'异常类型:{exc_type}')
            print(f'异常对象:{exc_val}')
            print(f'异常追踪信息:{exc_tb}')
        return True

# 1.计算 with 后面的表达式,得到一个『上下文管理器』。
# 2.调用『上下文管理器』的 __enter__() 方法,并将其返回值赋给 as 后面的变量。
# 3.执行 with 所管理的代码。
# 4.无论代 with 中的代码,是正常结束,还是发生异常,都会自动调用『上下文管理器』的 __exit__ 方法。

with Person('张三'18as p1:
    p1.speak()
# p1.study()
    print(666)

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 02:19:17 HTTP/2.0 GET : https://f.mffb.com.cn/a/500212.html
  2. 运行时间 : 0.265919s [ 吞吐率:3.76req/s ] 内存消耗:4,738.06kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=687e7a22c3ae72bf939c94e0381043f1
  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.000391s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000692s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000327s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000317s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000685s ]
  6. SELECT * FROM `set` [ RunTime:0.000247s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000636s ]
  8. SELECT * FROM `article` WHERE `id` = 500212 LIMIT 1 [ RunTime:0.025951s ]
  9. UPDATE `article` SET `lasttime` = 1783016357 WHERE `id` = 500212 [ RunTime:0.000594s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000267s ]
  11. SELECT * FROM `article` WHERE `id` < 500212 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001516s ]
  12. SELECT * FROM `article` WHERE `id` > 500212 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.035668s ]
  13. SELECT * FROM `article` WHERE `id` < 500212 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.016135s ]
  14. SELECT * FROM `article` WHERE `id` < 500212 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.069772s ]
  15. SELECT * FROM `article` WHERE `id` < 500212 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.046672s ]
0.267592s