python基础12-系统操作

这篇我们介绍下跟操作系统相关的一些内容, 操作系统的技能算是我们运维人的基本功了,因为如果连敲命令都吃力的话也提谈不上什么自动化了, 在linux里我们经常用的命令比如, cp,  mv, mkdir, chown,chmod等基本一天下来也就这几个命令反复使用,其实只看这些体现不出来运维的能力,真正体现运维能力的地方是出现问题时如何分析解决,这是难点,这也跟经验有关, 在一个复杂的问题面前,这时候基本功就显得尤为重要,对操作系统理解的深度体现了解决问题的能力差别,如果你想在在操作系统层面理解的更深一点,我推荐你读一下《现代操作系统》这本书,读完这本书你在操作系统层面的认知会有一个比较大的提升[……]

继续阅读

python基础11-文件读写part2

这篇我们接上一篇把文件操作接着写完,上篇我们介绍了文件的读写,在最后我们了解到了生成一个文件需要用到write()函数,现在我们介绍另一个写入文件的方式, 在shell下我们都知道有个echo命令, 它可以方便的将我们的文本写入或追加到一个文件中,在python下也有类似的方法,如果我们open了一个文件f,用以下语法就可以写入到这个文件中,类似echo命令:

这个命令就可以把这个字符串追加到这个文件中,了解了这个方法,我们就可以在我们脚本中,将生成的结果直接重定向到我们的文本中,生成我们要的结果,但这种方法其实还有另一个用[……]

继续阅读

python基础10-文件读写part1

本篇主要讲解Python对文件的处理,对文件的读写是我们日常中最用的操作了,不管你是分析日志还是要将生成的结果写到文件里,都需要用到读文件的读写操作,在python下对文件非常容易,我们使用它的内建函数open()就可以打开一个文件,如果你要打开个文件一般的用法是:

这里fi是open()返回的文件对象,有的刚接触的小伙伴可能就要问了,啥叫文件对象呀,对象这是一个抽象的概念,在Python里一切都是对象,你可以理解为如果它是一个对象,那么它将有它的属性和方法, 不知道这么说清楚没有,没理解也没关系,多用就明白了, 另一个mo[……]

继续阅读

python基础9-模块和包、标准库

python中的模块其实就是一个.py结尾的文件,也许有的小伙伴不太理解为什么我们需要模块,其实在在我们日常编程中,有很多功能是重复的,在下次我们编写一个新的需求时没必要从头开始,这时候我们就可以重用我们之前写的代码块,这样经过长时间积累把一些常用的功能以文件的方式保存起来,等需要的时候直接引用,不必从零开始实现某些功能,所以说代码写的越多就会发现复制粘贴真是人类一项伟大的发明。

那按上面说的模块就是一个文件,那照这么说我也能写一个模块喽,没错,只要你愿意每个人都可以写自己的模块,我们来个简单的例子,我们vi 一个文件,命名为mymodule.py,代码只有很简单的二行代码:
[cra[……]

继续阅读

python基础8-函数

函数的概念我估计每个人都不陌生,我们在学习C语言的时候就知道怎么定义一个函数了,那为什么要定义函数呢? 一般情况是第一你为了让主逻辑更清晰,第二是为了代码重用, 经常写shell脚本的人应该都有自己的函数库,在Python下也类似,很多功能可以复用,了解完这些我们来看看Python下的函数定义和调用。

1、函数定义和调用

在python下定义一个函数要以def开头,然后跟上函数名称和一个括号,最后加上冒号,然后回车空格来写代码块,我们来看一个最简单的函数:

这里定义了一个叫show的函数名称,函数体就包含了一个执[……]

继续阅读

python基础7-条件&循环

前面我们已经把所有的Python数据结构说完了,从现在起就开始讲程序的执行逻辑了,因为程序不可能每个执行语句都要顺序执行,正是有了这些条件或循环的执行逻辑,才体现出了算法,之前看过书编程书的人都知道,程序是什么?其实程序就是数据+算法,我们了解了数据,再加上了解程序的执行逻辑,就能写出复杂的程序来,这些执行逻辑每个语言都有,就是语法稍有不同而已,所以我们来看看在Python语言里怎么实现条件和循环。

1、条件语句:If/else

这是最简单的用法,只有条件为真时才执行后面的语句。
[crayon-686ed3052b[……]

继续阅读

python批量给云主机配置安全组

这几年对运维人员来说最大的变化可能就是公有云的出现了,我相信可能很多小伙伴公司业务就跑在公有云上,  因为公司业务关系,我个人接触公有云非常的早,大概在12年左右就是开始使用亚马逊云,后来逐渐接触到国内的阿里,腾讯云等,随着公司业务往国内发展,这几年我们也使用了很多国内的公有云厂商,所以在云运维方面也积累了一些经验,从传统的物理机到公有云运维,我个人认为最大的问题就是你能不能用公有云的思路去思考去实现一个安全稳定、可伸缩和经济的业务构架,云运维是有别与传统运维的,比如说了解公有云的都知道安全组的概念,安全组跟防火墙功能很相似,那我的机器是要设置iptables还是要设置安全组呢?设置了安全组还[……]

继续阅读

python基础6-集合类型

今天我们要了解的是集合类型,也是我们要说的最后一个基本数据类型了,集合(set)数据类型很像字典的key,因为它不可以重复,而且无序, 但它不是映射对应关系,就像是没有value的字典,创建一个集合只能用函数set(),这些就是集合的基本特性,我们还是看几个例子来了解下set的使用:

集合的创建和值访问:

创建集合我们用set方法,我们传入一个字符串,就创建了一个集合类型, 可以看出生成的集合值是不重复的,helloworld有三个l,但集合自动删除重复,只保留一个元素,另外访问集合元素的方法我们可以用for循环来遍历[……]

继续阅读

python基础5-字典

字典是python中的映射数据类型,映射类型对象里哈希值key,指向对象value,如果value是多个,就是一对多关系,字典是以键值对的形式存在的,在Python的数据类型中,字典数据类型算是比较重要的数据类型,在后续web编程中经常会用到字典数据类型去传递数据和渲染模板,所以这个数据类型是我们要花时间必须熟练掌握的数据类型,往下我们介绍字典常见操作。

1、创建字典,字典是{}形式的,所以{}就表示是个空字典,当然我们也可以给赋值给一个字典,例如:

这里建了三个字典,第一个表示是空字典,创建字典是注意,Key必须是不[……]

继续阅读

python基础5-元组操作

这周我们接着说python的数据类型,我们之前几周说了数字,字符串和列表数据类型,这篇我们说python中的元组和集合数据类型,让我们先从元组开始。

谈起元组,有了解的可能会觉得这个类型跟列表是非常相似的,操作方面也基本雷同,不过他们本质的区别是,元组是不可变数据类型,还记得我们之前提到过的字符串也是不可变数据类型吗?让我们再回顾下什么是不可变性,不可变性就是一旦一个对象被定义了,它的值就不能再本更新,除非是重新创建一个新的对象,那元组跟字符串的区别是,元组是一个容器对象,它可以包含一个或多个元素,基本特性我们 就介绍了这里,接下来我们看看具体的一些例子:

1、元组创建
[cra[……]

继续阅读