python之fileinput使用
工作中我们经常需要直接修改源文件,当然,我们都被建议最好别在源文件上直接做修改,要做好时刻备份的习惯,特别是重要的配置文件,如果需要直接修改源文件的话,我们一般都是先把源文件读入脚本然后再重定向到目标文件,目标文件重命名,源文件备份,linux下的话使用awk/sed一条命令就能搞定,python中有一个文件处理模块fileinput,比较实用
工作中我们经常需要直接修改源文件,当然,我们都被建议最好别在源文件上直接做修改,要做好时刻备份的习惯,特别是重要的配置文件,如果需要直接修改源文件的话,我们一般都是先把源文件读入脚本然后再重定向到目标文件,目标文件重命名,源文件备份,linux下的话使用awk/sed一条命令就能搞定,python中有一个文件处理模块fileinput,比较实用
最近在做一个内部用的在线生成oracle性能数据的报表工具,那段时期刚好在看flask框架,所以整个项目是用flask来做,前端使用的bootstrap3,由于工作环境需要,大部分的机器还停留在IE9及以下阶段(什么年代了还IE9,真的好想骂人),直接使用的bootstrap会出现页面排版错位情况,bootstrap3开始已放弃对IE9的支持,只得另想办法,好在我们都站在巨人的肩膀上,办法还是有的,在这记录一下.
近期在做一个数据库后台管理系统,功能非常简单,就是定时获取oracle数据库的awr性能报告数据,结合highcharts生成图表.因为之前已经用python写了个模块,这次有个功能刚好可以直接用,就也直接想用python写了,这种小系统当然是用python的flask框架了,简单轻便,项目中有用到用户登陆功能,使用了flask-login,对这种内部小型的不需要太复杂权限应用系统实乃必备
在python中查询Oracle,首先当然是cx_Oracle,方便快捷,但是很无奈有时必须使用sqlplus命令的形式,比如生成oracle9i的statspack报告,cx_Oracle就无能为力了,同时,这也涉及到python中子进程调用的问题,简单的任务当然首选subprocess
年前接到一个小活,有一阶段是需要处理某一文件夹下的CSV文本文件,起初文件量不大,用python写了个小脚本批量串行处理,后来想想估计后期还有这样的需求,如果文件量较大的话,再使用单线程时间就会比较长了,所以周末改写了个并发脚本,所用时间节省也是之前的1/2(限于笔记本多进程切换消耗资源,理论应该还更短),还是比较给力,下面就总结下python的并发那点事.
有这样一句话:”Python下多线程是鸡肋,推荐使用多进程“,但是为什么这么说呢?要了解多线程多进程之前,首先要了解python的GIL.