最近这段时间使用Python比较多,简单描述一下相关的经验。

第三方库多

从我的经验出发,Python是一门第三方库特别多的语言,诚然,各个语言都有自己的第三方库,比如java的maven库,php的composer等等,不过python从种类和数量上都要多很多。这就带来了一个好处,即,我们不需要到处去找代码,也不需要自己手动实现各种功能,只需要简单的搜一句:python + 关键词。就有大量的包供使用。

半自动化办公

最近提得比较火的一个点是,利用Python进行半自动化办公。利用代码,确实可以解决重复性劳动,比如,你想要把很多excel导入到一个平台中,而且这是你的一个每个月都会干的工作,往常你可能需要自己手动一个一个导入,一个一个的点击,如果使用代码的话,你就可以直接调用网站的接口,一次性搞定。虽然这中间你可能还需要拿到token,但是那也不是什么难事儿,python生态中也有对应的包可以完成。

python在安全领域的应用

python作为脚本语言,开发安全工具具备得天独厚的优势,脚本语言运行简单,部署简单,不像java这种编译型语言,写个简单的功能到真正上线都需要走一个复杂的流程(打包编译,开发环境构建,openjdk有些功能不全,还要注意内存泄漏的问题等等。python的环境在linux操作系统中是默认存在的)。所以相比于java,更多的安全从业人员更喜欢使用python作为首要语言,这也产生了python在安全圈的应用比其他很多语言都要强(go语言正在兴起)。前面有老哥提到了,python可用于数据采集工作,其实这也算是安全领域的一部分。很多著名的安全扫描器例如awvs老牌扫描器,都是使用python进行编写(核心部分是js写的poc直接放到v8里面执行的)。潮汐指纹检测工具开源版也是python。所以有心入门安全领域的同学可以考虑先使用python作为首要语言。

python在人工智能领域具有巨大优势

大量的库和商业化的人工智能环境都是基于python开发,当然这也不是说其他语言不能写人工智能的算法,例如下面这本书,就对算法进行了不同语言的实现《机器学习算法框架实战:Java和Python实现》
我个人认为python之所以在人工智能领域的影响力远超其他语言,是因为几个大公司(如谷歌,facebook等)在引导的原因。他们提供了大量的基础框架和库都是基于python的,而且其雄厚的研发团队和财力也引领了一众搞人工智能的公司往python方向靠。所以,理论上讲,python在人工智能领域的优势会一如既往的发展下去,想要入门人工智能的同学不用怀疑,使用python就对了。

python在自动化运维方面的成效

python在这方面的优势主要来源于linux系统中内置了python的环境,使得利用python做自动化运维而不需要在被运维的机器上安装agent成为可能。最让人熟知的当属ansible了,ansible通过剧本的方式使用批量化场景化自动化运维成为可能(一键部署等)。其核心代码就是使用python编写。包括最后生成的代码,放到被执行的机器上执行,也依赖于默认的python环境。而ansible里面,造就了一大堆自动化运维的模块,所以python 在自动化运维方面也有较强的发展。