怎么通过公众号来快速学习python编程?

现在各个公司对运维工程师的需求,要求具备Python编程能力已经成了一个不争的事实,所以现在不管你是刚入门还是已经参加工作几年了,如果不具备python编程能力,在过几年竞争可能会越来越弱,如果不突破这个枷锁,你的职业发展很快就达到了天花板,说的可能有点吓人,但这可能就是几年后的事实,那该咋办呢?当然是要尽快学习了,我们来看看如何学习。

现在随着移动互联网的发展,现在都进入碎片化学习时代了,很多人都在利用碎片时间来提升自己,比如通过微信公众号的方式学习(例如关注了本公众号的小伙伴),这种方式呢有利有弊,当然利要大于弊,因为学跟不学在一段时间后肯定会有一定的差距,弊在于什么呢?弊就在于第一你不能关注太多这类公众号,大家平时都要上班,如果每天给你推几十篇文章,反而会成为你的学习负担,到最后哪个都不想看了,所以你必须要选择一个你认为适合你的公众号平台;第二是你必须有时间去消化所看的知识,通过公众号的文章看了当时明白了,线下一定要找机会去练习,不能看完就完了。大家如果一直在关注“python运维技术”公众号大家可能会发现一个特点,就是我很少发除python之外的运维技术文章,在这里我给大家解释下,这是我特意的,因为这个问题被我之前也纠结过,因为除了python外,做过运维的都知道,运维的工作其实很技术栈是很杂的,尤其我工作了这么多年,很多运维技术其实都有接触,当我在写python相关文章有困难时, 其实我本可以轻松的写一些其它技术类文章发出去,但我都放弃了,因为我不想小伙伴们今天看到的一篇pyhton文章,明天看到的是另一门技术的文章,这样的结果就是大家无法通过“”python运维技术“”公众号达到长期的python技术积累,随着时间越长你就学散了,没有重点了,那我们之前经常会问?如何才能成为一个专家? 我给的答案是一定要长时间在某个领域进行刻意练习,我相信大家都可以理解,所以这就是我做个公众号的初衷,因为我想让关注“python运维技术”公众号的小伙伴有持续的积累和成长,一天二天看不出什么效果,时间长了量变就会发生质变,这个道理我不说大家也都明白。

写到最后我想说一些最近我的想法,接下来的日子我打算写一些关于python基础类的系列文章,主要是帮助给新入门的小伙伴尽快入门,基础类的文章写完后会写一些python web开发的内容,比如django等,最后我们通过实际项目来展现python如何开发运维平台的实际项目,到时我可以拿我实际工作中的例子给大家分享下,这就是我最近的一些想法,就写到这吧,以后还请大家多支持,觉得不错的文章就帮忙转发下,这篇觉得不错的也可以转,哟~ :)

python1

 

python异常捕获

在Python中处理异常使用的是try-except代码块,try-except代码块放入让python执行的操作,同时告诉python程序如果发生了异常该怎么办,try-except这个功能其实很多入门书籍中都放到了高级篇幅里,在入门的时候一般不会讲这个使用,尤其是作为运维人员,如果你经常写shell,转到python后估计也很少使用这个功能,这功能我觉得说明了shell和python的一个重要区别,因为python是一门真正的编程语言,像其它的编程语言php,java等都会提供异常捕获功能,用这些程序写出的代码是要健壮性的,如果你阅读一些其他人写的程序代码,尤其是一些socket编程方面的代码,很多都是try…except…,有的还except好多个,来判断各种各样的情况,既然这个功能这么有用,我们就来尽快了解下看如何使用的吧。

第一我们先看看它的语法,语法很简单,就是在try-except中放入你想要执行的代码块,例如:、

这是最简单的一种情况,如果情况复杂可以使用多个except句子,例如:

try-except还有更高级的用法,加入else,finally等,今天我们不展开说了有兴趣的可以自己深入研究下。

接下来我们来看一个简单例子,读写文件我们经常的操作,一个常见的问题就是找不到文件,或者文件名称,路径不正确,对这种情况,你就可以采用try-except代码块直观的方式来处理了:

我们再看一个多except的例子,2个数字相减:

以上二个例子就是最简单的try-except的用法了,如果想要保证脚本的健壮性,后续可多用try-except代码块吧,这会让你的代码看起来更专业。

 

 

python脚本pdb调试工具使用

pdb是linux的的python调试工具,它功能比较齐全,使用起来也很方便, 按一边运维工程师的发展来说,一般最早接触的是shell编程, 所以大多是在shell的基础上开始学习Python的,如果是刚 从shell脚本转到写python脚本的小伙伴可能会有点不太适应,比如说调试,大家都知道写脚本是有一个调试过程的除非你的脚本里只有一行, 那既然都有调试过程,那shell下调试就很方便,shell运行时我们可以直接 sh -x  myscript.sh ,就可以看到整个脚本运行的过程,或者在某些关键地方加入echo ,打印出变量,调试方法简单直接, 所以在写Python脚本时我们继承了写shell脚本的调试习惯,我们会在程序中加入print 来调试关键变量,这也是现在大家通用的方法,但有时候就行不通,如果一个脚本写的很长,有涉及到某些逻辑在里面,用print就显得无力了,如果你不掌握调试方法,那完成一个稍微复杂的脚本是相当痛苦的,所以掌握调试工具是写出复杂程序的必备技能,那就引出了今天我们要说的pdb调试工具。

开始前我们先了解下pdb的常用命令:

1、step:单步调试,执行下一行代码,但是有函数调用会进入函数内部。

2、next:执行下一行代码,如果当前语句有函数调用,则不会进入函数体中

3、break:设置程序断点,

4、continue:继续执行程序,直到下一个断点

5、list:显示第几行,例如:list 50

6、print:这个就是打印想看的参数

7、quit:退出

我们拿一个例子看如果具体应用:

比如我调试我之前的脚本:parser_nginx_log.py

我用最简单的方式在终端开始运行:

python -m pdb  parser_nginx_log.py

截图如下:

pdb

 

 

 

学习Python问?

感谢各位捧场,今天是2017年的第一篇,因为在之前不断收到小伙伴们在后台关于Pytho学习相关的留言,所以想在今年开篇先做一个答疑,方便各位更好的学习:

1、现在学习Python2还是python3?

这个问题应该是每个学python前都会碰到的问题,我记得刚开始学的时候也是搜了很多资料来确定自己到底用哪个更合适,但文章看的太多反而自己更晕了,我最早终选择的是是Python2版本, 但其实我最早学习的时候是看的python3,为什么改成python2了呢?因为我主要工作是做运维,用的是linux系统,而linux系统自带的都是2的版本,我用python3的版本写出来的脚本无法在linux系统里执行,所以我最终选择了2,所以说最终选择哪个版本还是要根据你自己的情况来定,如果是做运维工作我建议用2因为你如果写的3的版本代码在linux系统里是无法运行的,最新的CENTOS7的系统集成的版本也才是2.7的版本。

2、写python用个编辑器好?

这个也因人而异了,我用pycharm多一些,vi也用,反正编辑器你最好熟练一个,这个会帮助你写代码效率更高一些。

3、python的缩进如何解决?

这个解决不了,这是语言特性, 我想问这个问题应该不是要解决,应该敲空格敲多了太痛苦吧,可以参考上面问题选择一款自己合适的编辑器,我想你遇到到问题都会迎刃而解,因为编辑器里不管是你单行缩进还是整段缩进都是快捷键一键搞定。

4、初学习Python要先看那些书?

现在市面上入门的书籍应该很多了,我当时是看的python核心编程,现在不知道还有没有卖,如果是要入门之看上半部分就可以了,下半部分明显不是给入门者准备的,其实如果是入门书籍差别不会太大,尽量找个厚点的(覆盖的方面会广,后续也可以做参考书,我自己的理解),我觉得入门嘛,一本就够。

5、python好学吗?

这门语言入门容易,精通难,另外难不难也要根据个人情况,千万别被网上一些文章忽悠,说作者几天就精通python了,让你心血澎湃,感觉自己几天也能精通,但一旦开始学发现不是那回事,让自信心受到了打击,于是心灰意冷,书本丢到一边再也不看了, 我觉得这些文章其实挺害人的,因为他们往往没有介绍自己的背景,这些人往往是站在自己经精通了某种语言基础上来看python的,因为编程语言很大一部分是想通的,所以他们只要了解了语法,就可以上手了,如果小白从头开始是不可能几天就精通某个语言的。

今天就写到这里,还有很多问题没有答复,后续有时间在接着写吧。

 

 

 

 

运维,我想过一个没有故障的春节

在过五天就是春节了,估计心急的小伙伴早已经踏上了回家的火车或者已经吃上了家里的妈妈给做的团圆饭, 现在办公室已经没有干活的气氛了,到处洋溢着喜悦的气氛, 现在在岗位的同事我用手都可以数的过来,旁边的同事回家的箱子已经放到工位了,今天晚上的火车下班直接回家;前面的同事因为是明天走,现在在安静的看新闻打发时间; 还有几个在聊天的,也许每一年只有在这个时候大家才是真正的放松,因为除了工作本身压力减少外,还有马上要跟家里人团聚的喜悦心情,这就是春节的魅力,它跟一年中每个节日都不同。

在互联网公司里,运维岗位春节假期会稍有不同,因为它是一个没有严格意义上休假的概念,因为维护是公司生产环境,分分钟故障都会影响公司收入,必须有着时刻上战场的准备, 所以作为运维人每到节假日心里都总有些不是那么痛快,一方面想的是痛快的过个好假期,另一个方面却担心如果线上出问题,因为只要有问题就要花时间去解决,说个极端的例子:比如大年初一你在家里吃团圆饭,这时你收到一个报警短信告诉你某台机器宕机了,你是不是要马上去处理,等你处理完,估计好心情都没有了。但这是我们运维人的职责,我们不必抱怨,不必自责,要明白这才是我们作为一个运维人的基本价值:保障公司线上业务的稳定。

上面的例子也许太极端,但也反应出我们运维人日常的工作场景,有没有什么办法能减少这样的事情发生,当然最简单的办法就是防患于未然, 放假前检查工作提前做,别被动等问题发生, 那该检查什么呢? 在这里我总结一些点给大家参考:

线上生成环境检查

  • 监控报警可用性检查
  • 业务是否有备机,保证机器坏了可以及时找其他机器替换。
  • 有故障可能性的机器要提前更换,别等着它挂。
  • 如果有业务节假日更新,注意更新日期,别当天一高兴喝高了,给忘记了(这事貌似每年都有)
  • 业务相关人的联系方式,这个很重要,有时候出问题不是你一个人解决的,别到时候找不到人,耽误时间。
  • 了解故障汇报机制,出问题如果不在自己的控制范围内,要及时联系领导去解决,别等着,要知道每耽搁一分钟对公司来说都是致命的。

先总结这么多,欢迎小伙伴们补充,这就马上春节了,请春节期间小伙伴注意自身安全,饮酒适度, 未来二周我讲暂停更新,确保不骚扰大家,让大家过个好年, 最后在这里也祝大家新春快乐,阖家欢乐!