上礼拜五晚上,差点把老赵的报价单全干没。到现在想起来后脖子还发紧。
老赵是做防水的,跟我一个工地出来的,去年开始自己接活,手下四五个人。他让我给他写个小工具,把客户发来的一堆报价表合成一张总表。说是「你学这个了,帮个忙」。我答应了。其实心里没底,但四十岁的人了,不能老把没底挂在嘴上。
工具不难,就是把一个文件夹里的 xlsx 挨个读出来,写到一张汇总表里。我用的是那个 openpyexcel,照着教程和 ChatGpt 给的 APi 示例边问边改,三百来行,磨了一个礼拜,自己看着还挺得意。
礼拜五晚上我想赶在他周一用之前弄完,就把老赵发我的表全塞进一个文件夹,双击,跑了一遍。
跑完我点回那个文件夹,几个表的大小全变成 0 了。
我脑子当时是空的。真的,跟工地上看着泵车管子爆了是一个感觉,声音都听不见了,就看着浆往地上淌。
接着那一个小时,我就在文件夹属性、回收站、还有那个黑框框窗口之间来回点。第一反应是翻回收站,不对,覆盖不是删除,回收站里根本不会有。想装恢复软件,又想起来人家说装软件本身就往盘上写东西,不敢装。
后来才回头去看自己写的代码。翻到写文件那一段,一行一行看。看到 wb.save 那,后面跟的路径,跟我读进来的路径一模一样。
我把源文件自己给覆盖了。等于我拿着一份新图纸去现场,结果照着旧图纸把原来那栋楼拆了,原地又盖了个一模一样的空壳……这个比方可能不太恰当,反正就是这么个事。
应该先把结果写到一个临时文件,跑通了再替换,或者最起码先把文件夹复制一份。这两句话教程里大概都写着,我看见了,嫌麻烦,跳过了。
捡回来靠的是微信。老赵这个人发文件有个毛病,不管新的旧的,每次都重新发一遍,从来不在上一份上改。我跟他聊天记录往上翻,最近三个月的表都在。一个一个点下载,重新起名,存到一个新文件夹。光这个就一个多小时。
存的时候又发现他发来的文件名里有空格有括号,还有「最终版」「最终版2」「定稿(真的)」,我那个脚本处理这些名字还出过错,不是错,是排序排乱了,我顺手一起改了。
弄完十二点半,两个娃早睡了。我在客厅把脚本从头看了一遍,加了四行:先把整个文件夹复制一份出来,名字后面带时间戳。就四行。
礼拜六重跑,通了。总表发给他,他说好用,还问能不能再加个功能,把重复的客户名合并掉。
我说行。
礼拜五这事我没跟他讲。讲了也没用,他不关心这个。工地上也没人关心你那根梁为什么浇歪了,只看你返工浇好没有。