老婆下班回来,兴奋地给我说:代码好厉害啊,一行代码就解决了我的大问题。
我:什么问题?
老婆:我要把一个目录下几百个文件的文件名都复制到一个Excel中, 手工做很慢, 我百度了一下,一行代码就实现了!
我不以为然:百度出来的啊, 我还以为是你写的呢 !
(画外音:我以为她上了什么Python小课,学了新技能)
老婆反击:你不百度能写出来吗?
我:这个.....
暂停一下,给大家几秒钟,想想自己能不能不用Google/百度就搞定
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
聪明的你可能已经想到了解决办法,但是我当时脑海中想的是:
嗯,我对Python还算熟悉,可以用它开发。
读取一个目录下的文件名,好像有个什么os.listdir吧,我尝试几次就能搞定。
但是用Python如何操作Excel ?
可能得用第三方的软件包,如何使用的API我可不知道,根据我在Java上的经验,应该会有workbook, sheet 之类的概念, 虽然不难,但是不百度,不Google我是搞不定的。
我只好老老实实地承认:我不行。
不过我还是很好奇怎么能用一行代码就把这个任务完成了,我觉得怎么也得几十行吧!
我:你是怎么用一行代码搞定的? 怎么实现的?
老婆:就是运行啊!
我:运行? 运行啥?
老婆:Windows 中不是有个运行吗 ?
我彻底懵圈了!
看我一头雾水, 她在手机上搜了一会儿,把屏幕递给了我:
dir d:\123/b > d:\需要整理的文件.xls
真就是一行代码, 根本没用什么Python!也没用什么第三方软件包!
只是利用了操作系统提供的命令行, IO 重定向 。
简单、直接!充分体现了命令行之美。
不过我确实不知道Windows和Excel还支持这个“骚操作”,轻视微软的软件了。
其实,即使不知道Excel可以这么玩, 我也知道dir命令可以输出文件名列表,然后复制到Excel中就行了, 关键是我根本就没有往这个方向去想。
我一开始就跌入了用Python实现的细节陷阱中。
这就展示了我这个程序员(可能也包括你)的一个特点:说严重点就是缺点, 那就是面对问题,第一反应是祭出代码去解决,马上去考虑用什么编程语言、API、 类库,这可能就走上了一条吃力不讨论好的弯路。
代码是最低层的东西,充满了各种细节,用这些细节和API去解决问题,编写麻烦,调试麻烦,出错的概率很大。
这提醒我们,遇到问题要开阔视野,从底层细节中跳出来,多考虑下有没有上层的、抽象程度更高的东西来解决业务问题。 它们封装了细节,能站在一个比较高的角度解决问题,节省很多劳动。
第二天,老婆下班回家,又给我出了一道题:
还是昨天的需求,不过文件名分为三个部分, 一个是编号,一个是部门,一个是真正的文件名,中间用空格分开, 要把这三个信息分成三列输入到Excel, 这该怎么办呢?
你看到的只是冰山一角!
点击下方图片,查看更多文章吧 !
下面是我开的一个备份号,防止被人投诉后失联,请小伙伴们保存一下吧。
这个号不会空着,经常会发一下轻松有趣的东西,让大家在紧张的工作之余乐呵一下。