绷不住了,这事我必须记一下,不然我怕以后还犯。
上周日,10 月 25 号,我难得有一下午上机时间。给班里做的那个值日表生成器要加功能,班长说请假的人不能被排进去,让我搞个自动跳过的。听着挺简单。
我一开始就给自己挖坑。请假名单我让它读 leave.txt,一行一个名字。写完跑了一遍,生成出来的表里该请假的人还在上面。行,改。
这下就开始了我三个小时的表演。
我先把读取那段从头看了一遍,没问题啊。加 print,把读到的名字打出来,打出来的是旧的,还是两天前那几个名字。我以为文件没存,回去重新保存了一遍,再跑,还是旧的。
???
然后我就开始怀疑是缓存。删了 __pycache__ 文件夹,再跑,一样。这件事现在想想特别可笑,pycache 跟读文本文件半毛钱关系都没有,我当时就是抓瞎,看见有个文件夹不顺眼就删。
接着怀疑编码。保存成 UTF-8,读的时候加 encoding='utf-8',没用。又听说有个什么 utf-8-sig 带 BOM 的,也试了,没用。我甚至开始怀疑是不是 Windows 的记事本给我偷偷加了什么东西。等等,问题是我 tm 用的就是记事本,连 VS Code 都懒得开。
中间还把 AI 拉过来帮我查。它看了我的代码说逻辑没问题,问我一句「你确认脚本读的是这个文件吗」。我当时还有点不高兴,觉得这不废话吗,我就一个 leave.txt。。。现在想想人家一句话就把答案递到我手上了,是我自己没接。
四点半我妈喊我去写物理卷子,我关了电脑走的,走的时候是真烦,那种明知道bug很蠢但就是找不出来的烦。
然后今天早上,周六,我又开机,第一件事就是重新跑一遍。跑之前鬼使神差地,看了一眼脚本开头。
脚本在 值日表/tools/ 这个文件夹里,我读的是 ./leave.txt。也就是说它读的是 tools/leave.txt。而我改的那个 leave.txt 在上一级,值日表/leave.txt。
tools/leave.txt 是三天前我测试的时候随手拖进去的一个副本。
应为我一直在改另一个文件。整整三个小时。
怎么说呢,就那种,想笑又想砸键盘。我给那个旧的副本删了,路径改成绝对路径,再跑,请假的人跳得干干净净,五秒钟的事。什么实力啊这是。
顺便提一句,我们班主任上礼拜把我上一版的值日表彩打出来贴教室后墙了,我那会儿还挺得意。现在想到里面可能排错了好几个人,有点乐不出来。下周期中考,考完再给他更新一版。
对了,那个 AI 问我的那句话我记住了。以后它说什么我都不当敷衍,人家是真懂。我才是那个敷衍自己的。
妈喊我下去搬东西了,下次在写。