当前位置:首页>python>Python文件操作:给程序装上“记忆硬盘”,数据从此不丢失!小白也能轻松学会!

Python文件操作:给程序装上“记忆硬盘”,数据从此不丢失!小白也能轻松学会!

  • 2026-03-20 09:24:36
Python文件操作:给程序装上“记忆硬盘”,数据从此不丢失!小白也能轻松学会!

嗨,小伙伴们!欢迎回来!

在上节课,我们学会了用函数这个“魔法盒子”把代码打包,让程序变得井井有条。但是,不知道你有没有发现一个问题:我们之前写的程序,比如那个“学生成绩计算器”,一旦关闭运行窗口,所有学生的成绩就消失了,下次启动又得重新输入。这就像一条只有7秒记忆的鱼,是不是很可惜?

想象一下,你玩一款超好玩的游戏,每次退出后进度都归零,你愿意吗?肯定不愿意!程序也需要能“记住”东西的能力。今天,我们就来学习如何给Python程序装上“记忆硬盘”——文件操作。学完这节课,你的程序就能把数据保存到文件里,下次启动时再读出来,实现真正的“记忆”功能!

一、为什么程序需要读写文件?

我们之前的数据都存储在内存里,它的特点是速度快,但断电即失(程序关闭后数据就没了)。而硬盘上的文件,比如你电脑里的TXT、Excel,可以长久保存

文件操作,就是搭建起“内存”与“硬盘”之间的桥梁。它让你的程序能够:

  1. 长久保存数据:用户配置、游戏存档、计算结果,下次打开还在。

  2. 处理大量数据:从文件中读取成千上万条记录进行分析。

  3. 与其他程序交换数据:你的Python程序可以读取Excel文件,或者生成日志文件供其他工具分析。

二、打开文件:先找到你的“记忆笔记本”

要读写文件,第一步就是打开它。Python用内置的 open() 函数来做这件事,就像你从书包里拿出一个笔记本。

python

# 语法:文件对象 = open(文件路径, 打开模式)file=open('notes.txt','r')# 以只读模式打开当前目录下的 notes.txt 文件

文件路径:告诉Python去哪里找文件。'notes.txt' 表示当前程序所在的目录。
打开模式:决定了你要对文件做什么。最常用的有这几种:

模式
名称
作用
注意
'r'
只读模式
读取文件内容。
文件必须存在,否则会报错。
'w'
写入模式
向文件写入内容。
如果文件存在,会清空原有内容
;不存在则创建新文件。
'a'
追加模式
在文件末尾追加内容。
文件不存在会创建新文件;存在则在末尾添加,不会清空原有内容。
'x'
创建模式
创建新文件并写入。
如果文件已存在,会报错,防止覆盖。

💡 小贴士:对于文本文件,通常还会加上 't',比如 'rt' 或 'wt',但 't' 是默认的,所以可以省略不写。如果要处理图片、视频等二进制文件,则需要用 'b' 模式(如 'rb')。

三、读取文件:看看笔记本里记了什么

打开文件后,我们就可以用各种方法“阅读”它了。假设我们有一个 poem.txt 文件,内容如下:

text

床前明月光,疑是地上霜。举头望明月,低头思故乡。

3.1 读取全部内容:read()

用 .read() 方法,就像一口气把整本笔记本读完。

python

file=open('poem.txt','r', encoding='utf-8')# 注意:中文文件通常要指定编码content =file.read()print(content)file.close()# 重要!用完要关闭# 输出:# 床前明月光,# 疑是地上霜。# 举头望明月,# 低头思故乡。

⚠️ 特别注意:操作完文件后,一定要调用 close() 关闭它。这就像看完书要合上一样,既能释放系统资源,也能确保数据完整。如果忘记关闭,可能会导致数据丢失或程序出错。

3.2 逐行读取:readline() 和 readlines()

对于大文件,一次性读取可能占用太多内存。逐行读取是更好的方式。

  • readline():每次读取一行。

    python

    file=open('poem.txt','r', encoding='utf-8')line1 =file.readline()# 读取第一行:'床前明月光,\n'line2 =file.readline()# 读取第二行:'疑是地上霜。\n'print(line1, end='')# 用 end='' 去掉 print 自带的换行,因为 line1 本身就有换行符print(line2, end='')file.close()
  • readlines():读取所有行,并以列表形式返回,每一行是列表的一个元素。

    python

    file=open('poem.txt','r', encoding='utf-8')lines =file.readlines()print(lines)file.close()# 输出:['床前明月光,\n', '疑是地上霜。\n', '举头望明月,\n', '低头思故乡。']

3.3 最优雅的方式:直接用 for 循环遍历文件对象

这是Python中读取文件最推荐、最Pythonic的方式!文件对象本身就是一个迭代器,可以直接在 for 循环中使用,每次迭代得到一行。而且,这种方法在处理大文件时内存效率最高。

python

file=open('poem.txt','r', encoding='utf-8')for line infile:print(line, end='')# 逐行打印file.close()

四、写入文件:在笔记本上记新东西

写入文件同样简单,但要注意模式的选择。

4.1 写入模式 ('w'):清空重写

这相当于你拿了个新笔记本,或者把旧笔记本的内容全部擦掉,开始写新的。

python

file=open('diary.txt','w', encoding='utf-8')file.write('2026年3月2日,天气晴\n')file.write('今天学会了Python文件操作,感觉超棒!\n')file.write('明天继续加油!\n')file.close()# 运行后,diary.txt 文件里就只有这三行内容。

4.2 追加模式 ('a'):在末尾续写

这相当于你在笔记本已有的内容后面,接着写新的日记。

python

file=open('diary.txt','a', encoding='utf-8')file.write('2026年3月3日,补充一句:文件操作真的太有用了!\n')file.close()# 现在 diary.txt 的内容是在原来的三行后面,新增了第四行。

注意write() 方法不会自动换行,需要你自己加上 \n

五、终极懒人包:with 语句(自动关闭文件)

每次都手动 close() 文件,不仅麻烦,还可能因为程序中途出错而忘记关闭。Python提供了一个非常优雅的解决方案——with 语句。它会在代码块执行完毕后,自动帮你关闭文件,即使发生异常也不例外。

这就是文件操作的“懒人神器”,也是最标准的写法

python

# 读取文件withopen('poem.txt','r', encoding='utf-8')asfile:    content =file.read()print(content)# 这里不用写 file.close(),with 语句已经自动处理了# 写入文件withopen('diary.txt','a', encoding='utf-8')asfile:file.write('这是用 with 语句追加的一行,安全又省心!\n')

有了 with,代码更简洁,也更安全。从现在开始,请养成使用 with open(...) as ... 的好习惯!

六、综合案例:给“学生成绩计算器”装上记忆

还记得上节课的成绩计算器吗?数据都是写死在代码里的。现在,我们让它从文件读取学生信息,并把报告也保存到文件里。

第一步:准备数据文件 students.csv
在你的Python程序同目录下,新建一个文本文件,命名为 students.csv(CSV是一种常见的数据交换格式,用逗号分隔值),内容如下:

text

小明,85,92,78小红,90,88,95小刚,78,85,82小丽,92,96,89

第二步:编写带文件读写功能的成绩报告程序

python

defget_grade(score):"""根据分数返回等级"""if score >=90:return"A"elif score >=80:return"B"elif score >=70:return"C"elif score >=60:return"D"else:return"F"defaverage(scores):"""计算平均分"""returnsum(scores)/len(scores)defread_students_from_file(filename):"""从CSV文件读取学生数据,返回一个字典"""    students ={}try:withopen(filename,'r', encoding='utf-8')as f:for line in f:# 去掉行尾的换行符,然后按逗号分割                parts = line.strip().split(',')iflen(parts)==4:# 确保格式正确                    name = parts[0]# 将分数从字符串转为整数                    scores =[int(parts[1]),int(parts[2]),int(parts[3])]                    students[name]= scoresprint(f"成功从 {filename} 加载了 {len(students)} 位学生的数据。")except FileNotFoundError:print(f"错误:文件 {filename} 未找到,请检查文件路径。")except Exception as e:print(f"读取文件时发生未知错误:{e}")return studentsdefgenerate_report(students, output_filename):"""生成成绩报告,并写入文件"""    total_scores =[]    report_lines =[]# 用于收集要写入文件的内容# 准备报告标题    header ="="*40    title ="班级成绩报告"    report_lines.append(header)    report_lines.append(title)    report_lines.append(header)for name, scores in students.items():# 生成单个学生报告行        avg_score = average(scores)        line =(f"学生:{name} | 语文:{scores[0]}({get_grade(scores[0])}) "f"数学:{scores[1]}({get_grade(scores[1])}) "f"英语:{scores[2]}({get_grade(scores[2])}) | "f"平均分:{avg_score:.1f}({get_grade(avg_score)})")        report_lines.append(line)        total_scores.extend(scores)# 准备班级平均分行    report_lines.append("-"*40)    class_avg = average(total_scores)    report_lines.append(f"全班平均分:{class_avg:.1f} ({get_grade(class_avg)})")# 将报告打印到屏幕for line in report_lines:print(line)# 将报告写入文件try:withopen(output_filename,'w', encoding='utf-8')as f:for line in report_lines:                f.write(line +'\n')print(f"\n报告已成功保存到文件:{output_filename}")except Exception as e:print(f"写入文件时出错:{e}")# --- 主程序部分 ---input_file ='students.csv'output_file ='class_report.txt'# 1. 从文件读取数据student_data = read_students_from_file(input_file)# 2. 如果成功读取到数据,则生成报告if student_data:    generate_report(student_data, output_file)else:print("程序终止,因为没有加载到学生数据。")

运行这个程序,你会发现:

  1. 控制台打印出了漂亮的成绩报告。

  2. 程序目录下新生成了一个 class_report.txt 文件,里面的内容和控制台输出一模一样。

现在,你的程序终于拥有“记忆”了!想换一批学生?直接修改 students.csv 文件就行,完全不用改动代码。这就是数据与逻辑分离的巨大好处。

七、新手避坑指南

7.1 常见错误及解决方法

错误类型
错误示例
解决方法
文件找不到FileNotFoundError
1. 检查文件名和路径是否正确。2. 确保文件确实存在于那个位置。3. 对于 'r' 模式,文件必须存在。
编码问题UnicodeDecodeError
 或保存后中文乱码
打开文件时,始终指定 encoding='utf-8',这是最通用的编码。
忘记关闭文件
数据看似没写入,或资源泄露
养成习惯,要么手动 close()最好使用 with 语句自动管理。
意外覆盖文件
用 'w' 模式打开了一个重要文件
使用 'x' 模式可以安全地创建新文件,如果文件存在会报错。或者先检查文件是否存在。
写入后没换行
所有内容都挤在一行
在 write() 的内容末尾手动加上换行符 \n

7.2 三个实用小贴士

  1. 善用 try...except 处理文件异常:文件操作(比如读取一个不存在的文件)很容易出错。用 try...except 捕获错误,并给用户友好的提示,而不是让程序直接崩溃。上面的综合案例就是一个很好的示范。

  2. 处理路径用 pathlib:对于复杂的文件路径操作(比如拼接路径、获取文件名),Python的 pathlib 库非常方便。不过那是进阶内容,现在先确保能读写同目录下的文件就好。

  3. 'w' 和 'a' 的抉择:不确定时问自己:“我是要重写整个笔记本,还是只在末尾加新笔记?” 要清空旧内容,用 'w';要保留旧内容并追加,用 'a'

八、总结与下一步

恭喜你!今天你给Python程序装上了至关重要的“记忆硬盘”。现在你掌握了:

✅ 文件打开三要素open() 函数、文件路径、打开模式rwa
✅ 读取文件的多种方式read()readline()readlines(),以及最优雅的 for line in file
✅ 写入文件:用 write() 配合 'w' 或 'a' 模式
✅ 终极安全写法:用 with open(...) as file: 自动管理文件关闭
✅ 综合运用:从文件读取数据,并将处理结果写回文件,让程序拥有“记忆”

文件操作是连接程序和外部世界的桥梁。有了它,你的程序才真正具备了实用性。

下一步,我们将探索如何让程序更好地应对运行中的意外情况,学习 “异常处理”——当程序遇到错误时,如何优雅地处理,而不是直接崩溃。这样,你的程序会变得更加健壮和专业!

还是那句话:编程不是看会的,而是练会的。快打开你的Python环境,把文中的例子亲手敲一遍。试着修改 students.csv 的内容,或者在 generate_report 函数里增加新的统计项,看看会发生什么。有任何问题,欢迎在评论区留言交流!


下期预告:Python异常处理:如何让你的程序在“翻车”时也能优雅收场?敬请期待!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-28 01:09:10 HTTP/2.0 GET : https://f.mffb.com.cn/a/478087.html
  2. 运行时间 : 0.166781s [ 吞吐率:6.00req/s ] 内存消耗:4,553.87kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=e0402b209c247e98696e3446ef80a53d
  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.000429s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000730s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000335s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000278s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000510s ]
  6. SELECT * FROM `set` [ RunTime:0.000205s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000572s ]
  8. SELECT * FROM `article` WHERE `id` = 478087 LIMIT 1 [ RunTime:0.001376s ]
  9. UPDATE `article` SET `lasttime` = 1774631350 WHERE `id` = 478087 [ RunTime:0.003425s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000241s ]
  11. SELECT * FROM `article` WHERE `id` < 478087 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000433s ]
  12. SELECT * FROM `article` WHERE `id` > 478087 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000359s ]
  13. SELECT * FROM `article` WHERE `id` < 478087 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.003090s ]
  14. SELECT * FROM `article` WHERE `id` < 478087 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.009411s ]
  15. SELECT * FROM `article` WHERE `id` < 478087 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004890s ]
0.168367s