我的工作是帮助客户分析数据。最简单的那种,他们提需求,我编代码实现,并不复杂。
某个周一,客户找到我谈话,希望我帮他做一项分析,统计一些数据,大致问清楚了要做哪些,然后我开始写程序。注意,我只是问了做哪些内容,想要的结果,但是最终表现结果的形式并没有问清楚,这导致后面的蛋疼经历。
我用python 做这件事,设计程序的时候就是先做一个program,完成最基本的分析,然后输出一个结果,接着多次调用这个program,所以最终结果是几十个.csv文件。晚上下班前我将结果邮件发送给客户,因为客户在美国,这时候人家已经下班,所以我就直接下班,等第二天看邮件。
第二天也就是周二,收到邮件,客户说结果不错,但是文件太多,不好看,希望能整合到一个大的文件里。好吧,作为一个菜鸟程序员,我完全没有考虑别人会怎么看我的结果。所以写程序一定要搞清楚客户需求,从对方角度出发,谁让人家是上帝呢。至于将多个文件放到一起,我能想到最简单的方法,先分别输出多个文件,然后用linux 命令cat 和paste 粘到一起。同样的,下午将结果发过去(上午时间较少,而且经常开会)。继续等结果。
周三的时候,对方邮件称想要在这个的基础上在加一项求平均值,并且给我一个.csv文件,里面是结果的一个格式(怎么不早给?)。因为要加平均值,我直接在excel 里面求,结果我的程序输出的.csv 根据用不了平均值那个功能,百度说是数据格式有问题,没办法啊。折腾好久,最后还是决定修改代码,实在不行重新写过,这次就直接考虑输出到一个文件。最终的程序是,一个新的python程序调用前面那个程序,返回结果保存到列表,数据分层次就用列表的列表,结果没有问题。最终通过。
现在想想,一个简单的程序,就因为我没有搞清楚很关键的一个问题:最终结果的格式,导致花费好几天在这上面,以后要吸取教训啊。
另外就是程序刚开始总是报错,发现是本该有数值的地方是空的,然后修改代码写了一堆if 条件语句来判断,搞得很晕,是该学学python异常机制了。