昨天下午改需求,甲方要加一个数据清洗功能。我一看那活,两千多行脏数据,按老路子写脚本得折腾到半夜。我打开Python,泡了杯茶,十分钟后功能跑起来了。
那天同事老李在旁边看傻了眼。他说这活儿搁他手上,先建表结构,再写Java类,再配XML映射,一天都未必够。我说你换个思路,Python里pandas三行搞定。他问我怎么做到的,我指了指屏幕上的代码。
核心就这几步。
第一步,用pandas读CSV,自动识别所有列。不管编码是UTF-8还是GBK,read_csv一个参数全解决。老李那种手工写解析器的做法,我实在想不通图啥。
第二步,清洗逻辑用apply加lambda表达式。空值填默认值,格式错误的直接过滤,重复行用drop_duplicates去掉。这些在Java里要写二十多行循环的东西,Python里两行搞定。
第三步,结果直接to_excel写回。带格式带列宽,甲方要的报表直接生成。都不用再导一次。
说白了,Python的生态就把这些脏活累活全包了。别人一天写的那是造轮子,我十分钟用的是现成的轮子。你非要说我偷懒,那我认。可结果呢,活干完了,甲方满意了,我还能准点下班接孩子。
老李后来也装了Python,他用了半天就上手了。现在他跟我说,以前觉得写代码是体力活,现在觉得是搬砖。你搬一块砖和用铲车搬一车砖,那能一样吗。
别把时间浪费在重复造轮子上。Python里一个库解决问题,你就别自己写类。一个函数能干的活,你就别拆成十个方法。代码是给人看的,不是给自己找罪受的。
遇到数据处理的活,先想有没有现成库。pandas处理表格,openpyxl操作Excel,requests抓接口,re正则匹配。这些工具你花十分钟学会,以后能省十个小时。
我见过太多人,明明能用Python十分钟搞定的事,非要自己写一天。不是他们笨,是习惯了老套路。可开发这行,谁先完成任务谁下班,谁准点回家谁舒服。
你问我现在工作效率怎么样,我只能说,别人加班写代码的时候,我在家陪闺女搭积木。这不叫偷懒,这叫会干活。