之前我面试的时候,一般都会问一个问题:「能讲讲你日常开发中都用到了那些Python内置的模块吗」?我为啥爱问这么个问题呢:
1. 了解面试者日常的工作。
2. 了解面试者对技术的热情和主动性。
3. 侧面验证面试者技术水平。
今天我决定分享一下老司机的日常高效实用内置模块的实践:
GLOB
glob是python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,就类似于Windows下的文件搜索,支持通配符操作,*,?,[]这三个通配符,*代表0个或多个字符,?代表一个字符,[]匹配指定范围内的字符,如[0-9]匹配数字。
文件名的shell模式匹配,你不用遍历整个目录判断每个文件是不是符合,使用glob一句话就解决。下面是在所有 html 后缀的文件中加上一点样式。
sched
Python自带模块当中的sched,不但小巧,也很强大,在实际应用中,非常多的场合还是可以用到的。作为一名Linux的上瘾者,我们已经习惯了用crontab,而sched提供了一种延迟处理机制,也可以理解为任务调度的另一种方式的实现。
shutil
我做运维的时候,使用Python完成了一些打包和备份的脚本,也就是把某个目录压缩成各种格式(tar.gz、tar.bz2、zip)。 这个脚本其实打包压缩的部分还是比较复杂的。直到我看到了这个:
太好用了,可以不用压缩软件了,而且压缩率特别高。
multiprocessing
Python 在程序并行化方面多少有些声名狼藉。撇开技术上的问题,例如线程的实现和 GIL,我觉得错误的教学指导才是主要问题。常见的经典 Python 多线程、多进程教程多显得偏“重”。而且往往隔靴搔痒,没有深入探讨日常工作中最有用的内容。比如,我们写小爬虫的时候,使用多进程来加速下载。
jieba
"结巴"中文分词:做最好的Python中文分词组件 "Jieba"
代码示例:
结果:
当然,如果去采集XX网站,然后搜索,可以获得一大批撸管用的东西,想知道具体操作方法的请关注IT老司机后续文章,多多评论。
twisted
实用的静态文件管理器,
twistd -n web --path /tmp
执行命令后,让本地变成一个服务器,非常好用。命令效果如下
和这个命令类似的还有: python -m SimpleHTTPServer