运维平台架构设计及开发(持续更新中...)

开发环境: Python 2.x GoLang 1.6 Django 1.6 Bootstrap 3.0 JQuery1.8 架构: 模块介绍: Agent:使用GoLang开发,主要收集主机信息、执行下发任务、主机状态上报、服务检测等 Master:使用GoLang开发,接收Agent上报的信息,存储到MySQL Dashboard:使用Python Django开发,前台展示及管理。前端使用B......
Python 2019年01月26日 17:15:58

Python Queue模块

Queue.Queue类是一个队列的同步实现。 队列长度可为无限或者有限。可通过Queue的构造函数的可选参数maxsize来设定队列长度。如果maxsize小于1就表示队列长度无限。 import Queue queue = Queue.Queue(maxsize = 10) # 创建队列 将一个值放入队列中 queue.put(20) 调用队列对象的put()方法在队尾插入一个项目。 put(......
Python 2019年04月28日 15:33:43

Python 内置函数 filter、map、reduce、lambda使用

filter(function, sequence) lst = [ 1 , 2 , 3 , 4 ] def func(x): return x if x != 1 else None ret = filter(func, lst) print ret # [ 2 , 3 , 4 ] 对sequence中的item依次执行function(item),将执行结果为True的item组成一个List......
Python 2019年04月28日 15:19:03

简单介绍Python的数据持久化存储

Python的数据持久化操作主要有四种: 普通文件 DBM文件 Pickled对象存储 shelve对象存储 普通文件不解释了 DBM就是把字符串的键值对存储在文件里: import anydbm file = anydbm.open( movie , c ) # make a DBM file called movie file[ Batman ] = Pow! # store a string......
Python 2019年04月19日 15:38:35

【记录】Python开发中的一些技巧

记录些自己日常写Python的一些小技巧,算不上高级但代码看起来 Pythonic 一点。 列表推导式 [ i for i in range(10) ] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 字典推导式(Python2.x不支持) { i:i*i for i in range(10)} {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36......
Python 2019年03月11日 16:41:08

Python装饰器详解

什么是装饰器? 在定义了许多的函数之后,我们想扩展这些函数的功能,如在函数执行前打印日志,但如果是一些通用的功能,修改每一个函数会显得不优雅且麻烦,那么如何在不修改当前函数调用又能扩展函数哪?答案就是定义一个装饰器,给每个函数增加功能,这种在代码运行时动态增加函数功能的方式就是装饰器(Decorator)。 简单的说装饰器是可以在不改变某个函数内部实现和原来调用方式的前提下对该函数增加一些附件的功......
Python 2018年10月09日 16:06:51

浅谈Python的上下文管理器

我们经常在Python代码中看到with语句,仔细分析下,会发现这个with语句功能好强大,可以自动关闭资源。这个在Python中叫上下文管理器(Context Manager)那我们什么时候用到它呢? 上下文管理器的作用 在很多情况下,当我们使用完一个资源后,我们需要手动的关闭它,如操作文件或数据库。但是,在使用资源的过程中,如果遇到异常,很可能错误被直接抛出,导致来不及关闭资源。所以在大部分程......
Python 2018年09月25日 11:52:08

Python包管理工具setuptools使用

什么事setuptools setuptools是Python distutils增强版的集合,它可以帮助我们更简单的创建和分发Python包,尤其是拥有依赖关系的。setuptools可以说相当的简单易用,它会随着Python一起安装,你只需要写一个简短的setup.py文件就可以将你的Python应用打包。 功能亮点 利用EasyInstall自动查找、下载、安装、升级依赖包 创建Python......
Python 2018年09月17日 14:50:54

Python 迭代器和生成器

在学习Python的数据结构时,列表/集合/字典推导式(list set dict comprehension)、可迭代对象(iterable)、迭代器(iterator)、生成器(generator)等,几个概念混杂不清,这篇文章将梳理下这几个概念。 可迭代对象(iterable) 在Python中,str、list、set、dict、file、socket数据类型都是可以被迭代,因此凡是可以返......
Python 2018年08月22日 11:55:33

Python subprocess(标准库)使用

Python2.4开始,Python引入了subprocess模块来管理子进程,取代旧模块,如:os.system,os.popen等,subprocess不但可以调用外部的命令作为子进程,而且还可以连接到子进程的INPUT/OUTPUT/ERROR管道,获取相关返回信息。 运行python的时候,我们都是在创建并运行一个进程。像Linux进程那样,一个进程可以fork一个子进程,并让这个子进程e......
Python 2018年07月12日 15:34:59

Python yield使用理解

通常在for...in...循环中,in后面是一个数组,这个数组是一个可迭代对象,类似的还有字符串,文件及其他可迭代对象。这种方式的缺陷是数据都存在内存中,如果数据非常庞大的话会非常消耗内存的。因此在Python可以使用生成器(generator)来迭代较大数据。生成器是在用的时候才生成,如:gen = (x*x for i in range(10)) ,注意这里用的是()。生成器(generat......
Python 2018年07月12日 11:38:54