当前位置:首页>python>每天学习一点Python——文件操作全攻略

每天学习一点Python——文件操作全攻略

  • 2026-02-19 21:22:57
每天学习一点Python——文件操作全攻略

每天学习一点Python——文件操作全攻略

大家好!今天我们来继续学习Python中文件操作的核心技能。无论是读写文本文件,还是处理CSV数据,文件操作都是编程中必不可少的环节。让我们从基础开始,一步步掌握这些实用技巧。


一、准备工作:导入必要的模块

首先,我们需要导入Python的pathlib模块,它是现代Python中处理文件路径的首选方式:

from pathlib import Path

📝 代码解释:

  • • from pathlib import Path:从pathlib模块导入Path
  • • pathlib是Python 3.4+引入的路径操作库,比传统的os.path更直观
  • • Path类提供了丰富的方法来处理文件路径

二、查看当前工作目录

在开始文件操作前,我们先了解一下程序当前工作目录:

print(Path.cwd())

📝 代码解释:

  • • Path.cwd():获取"当前工作目录"(Current Working Directory)
  • • 这是程序运行时默认的目录路径

三、创建目录和子目录

现在我们来创建自己的文件夹(昨天已经创建过了,今天再复习下):

# 在用户主目录下创建new_directory文件夹
new_dir = Path.home() / "new_directory"
new_dir.mkdir(exist_ok=True)

📝 代码解释:

  • • Path.home():获取用户主目录
    • • Windows:C:\Users\用户名
    • • Mac/Linux:/home/用户名
  • • /操作符:用于拼接路径,比传统字符串拼接更安全
# 创建多级子目录:new_directory/folder_a/folder_b
nested_dir = new_dir / "folder_a" / "folder_b"
nested_dir.mkdir(parents=True)

📝 逐行解析:

行号
代码
作用
1
new_dir = Path.home() / "new_directory"
创建路径对象,指向用户主目录下的new_directory
2
new_dir.mkdir(exist_ok=True)
创建目录,如果已存在也不报错
4
nested_dir = new_dir / "folder_a" / "folder_b"
定义多级路径(此时目录还未创建)
5
nested_dir.mkdir(parents=True)
创建目录及所有父级目录

四、文件的基本操作

1. 创建文件

file_path = new_dir / "file1.txt"
file_path.touch()

📝 代码解释:

  • • touch():创建一个空文件,类似Linux的touch命令
  • • 如果文件已存在,则更新文件的修改时间

2. 移动/重命名文件

source = new_dir / "file1.txt"
destination = new_dir / "folder_a" / "file1.txt"
source.replace(destination)

✅ 执行结果:

WindowsPath('C:/Users/用户名/new_directory/folder_a/file1.txt')

📝 代码解释:

  • • replace():移动文件到新位置,如果目标位置已有文件则覆盖
  • • 返回新的Path对象指向移动后的文件位置

⚠️ 重要提醒: 如果源文件不存在会报错!请确保文件已创建再进行移动操作。


3. 删除文件

file_to_delete = new_dir / "folder_a" / "file1.txt"
file_to_delete.unlink()

📝 代码解释:

  • • unlink():删除文件
  • • 重要提示: 这是永久删除,不会进入回收站!

五、批量操作实战

一次性创建多个测试文件和目录:

test_dir = new_dir
print
(test_dir.exists())  # 检查目录是否存在

files_to_create = [
    test_dir / "README.md",          # 文本文件
    test_dir / "config.json",        # 配置文件
    test_dir / "data.csv",           # 数据文件
    test_dir / "logs",               # 日志目录
]

for
 item in files_to_create:
    if
 item.suffix:  # 如果有后缀就是文件
        item.touch()
        print
(f"已创建文件:{item.name}")
    else
:            # 没有后缀就是目录
        item.mkdir(exist_ok=True)
        print
(f"已创建目录:{item.name}")

✅ 执行结果:

True
已创建文件:README.md
已创建文件:config.json
已创建文件:data.csv
已创建目录:logs

🔑 关键概念:

  • • exists():检查路径是否存在
  • • suffix属性:获取文件后缀名(如.txt.csv
  • • name属性:获取文件名(包含后缀)

💡 实用技巧: 通过item.suffix可以判断是文件还是目录,因为目录通常没有后缀名。


六、删除目录的两种方式

方式1:删除空目录

empty_dir = new_dir / "logs"
empty_dir.rmdir()  # 只能删除空目录

方式2:删除非空目录

import shutil
shutil.rmtree(new_dir / "folder_a")  # 强力删除,包括所有内容

🆚 两种删除方式对比

方法
功能
使用场景
注意事项
path.rmdir()
只能删除空目录
确认目录为空时使用
目录非空会报错
shutil.rmtree(path)
删除目录及所有内容
需要递归删除整个目录树时
强力删除,谨慎使用

🔍 rmtree()工作原理详解

对于代码:

shutil.rmtree(new_dir/"folder_a")

路径解析:

  • • new_dir = C:\Users\用户名\new_directory
  • • new_dir/"folder_a" = C:\Users\用户名\new_directory\folder_a

删除范围图示:

new_directory/           ← 不会被删除
├── folder_a/           ← 从这里开始删除(包括里面的所有内容)
│   ├── file1.txt      ← 被删除
│   ├── file2.txt      ← 被删除
│   └── folder_b/      ← 被删除
├── README.md           ← 不会被删除
└── config.json         ← 不会被删除

📌 核心理解:rmtree()只删除你指定的路径及其子内容,不会向上删除父目录。


七、文本文件的读写操作

1. 写入文本文件

path = new_dir / "hello.txt"

with
 path.open(mode='w', encoding="utf-8") as file:
    file.write("Hello,World!")
    chars_written = file.write("\nWelcome to Python!")
    print
(f"写入的字符数:{chars_written}")

✅ 执行结果:

写入的字符数:19

逐行解释代码

第一行:创建路径对象

path = new_dir / "hello.txt"

说明:此时只是定义路径,文件还不存在。

第二行:打开文件

with path.open(mode='w', encoding="utf-8") as file:

说明mode='w'表示写入模式,文件在此时被创建。

第三行:第一次写入

file.write("Hello,World!")

说明:写入12个字符到新文件。

第四行:第二次写入

chars_written = file.write("\nWelcome to Python!")

说明

  • • 接着写入换行符和18个字符,总共19个字符。
  • • write()写入内容,返回写入的字符数

关键问题解答

问: 是不是用两次with ... as file:就会覆盖了?

答: 完全正确!这就是关键区别。

两种情况对比

情况1:单次with,多次write(不会覆盖)

# 在同一个with块内连续写入
with
 path.open(mode='w', encoding="utf-8") as file:
    file.write("Hello,World!")          # 第一次写入
    file.write("\nWelcome to Python!")  # 第二次接着写

结果:两行内容都保留。

情况2:两次with,每次都覆盖

# 第一次with块
with
 path.open(mode='w', encoding="utf-8") as file:
    file.write("Hello,World!")  # 写入第一行
# with结束,文件关闭


# 第二次with块(重新打开)

with
 path.open(mode='w', encoding="utf-8") as file:
    file.write("New Content")   # 完全覆盖之前的全部内容

结果:只看到"New Content",之前的"Hello,World!"被覆盖。

核心原理图示

情况1(单次with):
打开文件 → 写"Hello,World!" → 继续写"Welcome" → 关闭文件
       ↓
文件内容:两行都保留

情况2(两次with):
第一次:打开文件 → 写"Hello" → 关闭文件
第二次:重新打开文件 → 写"New" → 关闭文件
       ↓
文件内容:只有"New"(之前的内容被清空)

简单记忆规则

  1. 1. 同一个with块内:多次write()追加
  2. 2. 不同with:每次都是重新开始(覆盖)

2. 读取整个文件

with path.open(mode="r", encoding="utf-8") as file:
    content = file.read()
    print
("文件内容:")
    print
(content)

代码解释:

  • • read():一次性读取整个文件内容
  • • 适合小文件,大文件可能消耗过多内存

✅ 执行结果:

文件内容:
Hello,World!
Welcome to Python!

3. 逐行读取文件

with path.open(mode='r', encoding="utf-8") as file:
    for
 line in file.readlines():
        print
(f"行内容:{line.strip()}")

代码解释:

  • • readlines():读取所有行,返回字符串列表
  • • strip():移除每行末尾的换行符
  • • 适合需要逐行处理的场景

✅ 执行结果:

行内容:Hello,World!
行内容:Welcome to Python!

🧹 strip()方法详解

strip()主要用于去除字符串首尾的空白字符,但功能更强大:

基本用法:

text = "  Hello World!  "
print
(text.strip())  # "Hello World!" ← 去掉首尾空格

去除指定字符:

text = "***Hello***"
print
(text.strip("*"))  # "Hello" ← 去掉首尾星号

去除多种字符:

text = "  \n \t Hello! \t\n  "
print
(text.strip(" \n\t!"))  # "Hello" ← 去掉空格、换行、制表符、感叹号

strip()家族对比:

方法
作用
示例
结果
strip()
去除首尾的字符
" abc ".strip()"abc"
lstrip()
只去除左边的字符
" abc ".lstrip()"abc "
rstrip()
只去除右边的字符
" abc ".rstrip()" abc"

💡 重要特性:strip()只处理字符串首尾,中间内容保持不变!


4. 追加内容到文件

with path.open(mode="a", encoding="utf-8") as file:
    file.write("\nThis is appended text.")

📝 代码解释:

  • • mode="a":追加模式,在文件末尾添加内容
  • • 不会覆盖原有内容

📊 文件打开模式总结:

模式
含义
特点
'w'
写入(覆盖)
清空原有内容,重新写入
'r'
读取
只能读取,不能写入
'a'
追加
在文件末尾添加内容
'x'
独占创建
文件存在则报错

⚠️ 重要提示: 文件打开模式要记牢,特别是'w''a'的区别!


八、CSV文件的读写操作

1. CSV文件写入(列表格式)

先准备一些数据:

import csv
from
 pathlib import Path

daily_temperatures = [
    [68, 65, 68, 70, 74, 72],
    [67, 67, 70, 72, 72, 70],
    [68, 70, 74, 76, 74, 73],
]

写入CSV文件:

file_path = new_dir / "temperatures.csv"
with
 file_path.open(mode="w", encoding="utf-8", newline="") as file:
    writer = csv.writer(file)
    writer.writerows(daily_temperatures)

代码解释:

open()中的newline=""参数:

  • • 控制换行符处理
  • • 在Windows上防止写入额外的\r\n
  • • 确保跨平台一致性

CSV写入器:

  • • with ... as file:使用上下文管理器,自动管理文件资源,确保文件正确关闭
  • • csv.writer():创建CSV写入器
  • • writer.writerows():批量写入多行数据

2. CSV文件读取

with file_path.open(mode="r", encoding="utf-8", newline="") as file:
    reader = csv.reader(file)
    for
 row in reader:
        print
(f"原始行:{row}")
        int_row = [int(value) for value in row]
        print
(f"转换后:{int_row}")

代码解释:

  • • csv.reader():创建CSV读取器
  • • CSV读取的所有值都是字符串类型,需要时需手动转换
  • • [int(value) for value in row]:列表推导式,将每行的字符串转为整数

✅ 执行结果:

原始行:['68', '65', '68', '70', '74', '72']
转换后:[68, 65, 68, 70, 74, 72]
原始行:['67', '67', '70', '72', '72', '70']
转换后:[67, 67, 70, 72, 72, 70]
原始行:['68', '70', '74', '76', '74', '73']
转换后:[68, 70, 74, 76, 74, 73]

3. 带表头的CSV写入(字典格式)

people = [
    {"name": "Veronica", "age": 29},
    {"name": "Audrey", "age": 32},
    {"name": "Sam", "age": 24},
]

file_path = new_dir / "people.csv"
with
 file_path.open(mode="w", encoding="utf-8", newline="") as file:
    writer = csv.DictWriter(file, fieldnames=["name", "age"])
    writer.writeheader()
    writer.writerows(people)

代码解释:

csv.DictWriter的优点:

  • • 使用字典而不是列表,代码更易读
  • • 自动处理表头
  • • 不依赖列的顺序

关键参数:

  • • fieldnames=["name", "age"]:定义CSV的列名和顺序
  • • writeheader():写入表头行
  • • writerows(people):写入数据行

✅ 生成的文件内容:

name,age
Veronica,29
Audrey,32
Sam,24

4. 带表头的CSV读取

with file_path.open(mode="r", encoding="utf-8", newline="") as file:
    reader = csv.DictReader(file)
    for
 row in reader:
        print
(f"姓名:{row['name']}, 年龄:{row['age']}")

代码解释:

  • • csv.DictReader():创建字典读取器
  • • 自动将第一行识别为表头
  • • 每一行返回一个字典,键是列名
  • • 通过row['name']访问特定列,代码更清晰

✅ 执行结果:

姓名:Veronica, 年龄:29
姓名:Audrey, 年龄:32
姓名:Sam, 年龄:24

九、两种CSV写法的对比

特性
csv.writer
(列表格式)
csv.DictWriter
(字典格式)
数据结构
列表
字典
列顺序
严格按列表顺序
fieldnames顺序
表头处理
需手动写入
自动管理
代码可读性
一般(依赖索引)
高(使用键名)
适用场景
简单固定格式数据
复杂结构化数据
数据来源
数组、列表
数据库、API返回的JSON

💡 建议: 从数据库或API获取的数据通常是字典格式,使用DictWriter更方便!


十、总结

📚 今日重点回顾

  1. 1. 路径操作:使用pathlib模块创建、移动、删除文件和目录
  2. 2. 文本文件:掌握read()write()readlines()等基本操作
  3. 3. CSV文件:学会用csv.writercsv.DictWriter处理表格数据
  4. 4. 最佳实践:使用with语句确保文件正确关闭

🔑 关键要点

  • • 路径拼接用/操作符更安全
  • • 文件操作完一定要关闭(或用with语句自动管理)
  • • CSV读写注意newline=""参数确保跨平台兼容
  • • 大文件不要用read()一次性读取,改用逐行处理

📦 资源获取提示

关注「码农自习室」,后台回复关键词 Python学习,即可获取本文完整代码,一起动手掌握高效编程的核心技巧!


❤️ 支持我们

如果觉得本文对你有帮助,欢迎点赞 + 关注,您的支持是我们持续创作优质内容的最大动力!


📚 学习资源说明

本文内容是基于《Python Basics: A Practical Introduction to Python 3》(Real Python)一书的学习笔记整理。
这本书是一本非常优秀的Python入门教材,推荐给所有想要系统学习Python的朋友们。

这本书的特点:

  • • ✅ 完全面向编程新手
  • • ✅ 每个概念都有代码示例
  • • ✅ 包含大量练习题
  • • ✅ 由经验丰富的Python开发者编写

跟着这本书学习,配合我的笔记整理,相信你能更快掌握Python编程!

让我们一起坚持学习,每天进步一点点!💪

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-27 15:07:24 HTTP/2.0 GET : https://f.mffb.com.cn/a/475293.html
  2. 运行时间 : 0.079274s [ 吞吐率:12.61req/s ] 内存消耗:4,929.37kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=10a766484168e1c5ef1384eeb2c11dd7
  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.000472s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000596s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000285s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000273s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000487s ]
  6. SELECT * FROM `set` [ RunTime:0.000199s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000546s ]
  8. SELECT * FROM `article` WHERE `id` = 475293 LIMIT 1 [ RunTime:0.001716s ]
  9. UPDATE `article` SET `lasttime` = 1772176044 WHERE `id` = 475293 [ RunTime:0.000670s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000240s ]
  11. SELECT * FROM `article` WHERE `id` < 475293 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000402s ]
  12. SELECT * FROM `article` WHERE `id` > 475293 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000395s ]
  13. SELECT * FROM `article` WHERE `id` < 475293 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004141s ]
  14. SELECT * FROM `article` WHERE `id` < 475293 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000625s ]
  15. SELECT * FROM `article` WHERE `id` < 475293 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000701s ]
0.080963s