自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

勇敢的心博客

运维开发者

  • 博客(47)
  • 收藏
  • 关注

原创 Saltstack二次开发

Saltstack简介Salt 是 一个配置管理系统,能够维护预定义状态的远程节点(比如,确保指定的报被安装,指定的服务在运行) 一个分布式远程执行系统,用来在远程节点(可以是单个节点,也可以是任意规则挑选出来的节点)上执行命令和查询数据 开发其的目的是为远程执行提供最好的解决方案,并使远程执行变得更好,更快,更简单 Saltstack(中国用户组 www.saltstack.cn )基于py

2018-02-08 11:13:08 603 1

原创 Python爬虫学习进阶

Python的urllib和urllib2模块都做与请求URL相关的操作,但他们提供不同的功能。他们两个最显着的差异如下:urllib2可以接受一个Request对象,并以此可以来设置一个URL的headers,但是urllib只接收一个URL。这意味着,你不能伪装你的用户代理字符串等。urllib模块可以提供进行urlencode的方法,该方法用于GET查询字符串的生成,urllib2的

2018-01-24 15:00:36 2206

原创 request的用法

Request的会话对象s = requests.session()Python2        S = requests.Session()所有一次会话的信息都保存在s中,只需要对s进行操作就可以了。 s.get(url) Requests通过会话信息来获取cookie信息Cookie的五要素:Name   value   domain   path  expiresCook

2018-01-23 08:12:57 3992

原创 Python 处理图片

PIL 是 Python 最常用的图像处理库,在 Python 2.x 中是 PIL 模块,在 Python 3.x 中已经替换成 pillow 模块,安装 PIL :pip install pillowPython 查看图片的一些属性#!/usr/bin/env python#-*- coding:utf-8 -*-from PIL import Imageimage

2018-01-20 19:20:15 1115

原创 python爬虫学习

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。爬虫是模拟用户在浏览器或者App应用上的操作,把操作的过程、实现自动化的程序当我们在浏览器中输入一个url后回车,后台会发生什么?比如说你输入http://v.apelearn.com简单

2018-01-18 11:44:21 244

原创 直播课爬虫代码

'''爬虫阿铭linux教程,保存为本地的pdf文件'''import reimport osimport pdfkitimport requestsif not os.path.exists("aminglinux"): os.mkdir("aminglinux")os.chdir("aminglinux")url = "http://www.apelearn.

2018-01-14 15:25:43 363

原创 基于SSL的邮件

#!/usr/bin/env python3 #coding: utf-8 import smtplib from email.mime.text import MIMEText from email.header import Header sender = '***' receiver = '***' subject = 'python email test'

2018-01-10 10:20:17 757

原创 python语言实现发邮件功能

HTML形式的邮件#!/usr/bin/env python3 #coding: utf-8 import smtplib from email.mime.text import MIMEText sender = '***' receiver = '***' subject = 'python email test' smtpserver = 'smtp.

2018-01-08 11:49:17 381

原创 SocketServer 模块

SocketServer 模块是一个基于 socket 模块的高级别的套接字通讯模块,用于简化网络客户与服务器的实现,它支持使用多进程或多线程处理客户端请求。“` [root@localhost ~]# cat socketserver.py !/usr/bin/env python-- coding:utf-8 --import SocketServerclass My

2018-01-06 20:26:28 393

原创 Socket 实现 FTP Server

get  /tmp/1.txt  /tmp/1.txt :把服务端 /tmp/1.txt 下载到客户端 /tmp/1.txtput  /tmp/1.txt  /tmp/1.txt :把客户端 /tmp/1.txt 上传到服务端 /tmp/1.txt[root@localhost ~]# cat ftp_server.py #!/usr/bin/env python#-*- coding

2018-01-03 18:59:23 1186

原创 使用socket执行远程命令

写一个程序,实现客户端能在服务端远程执行命令,并把命令结果在客户端打印出来服务端:192.168.5.131    客户端:192.168.5.134[root@localhost ~]# cat client.py #!/usr/bin/env python#-*- coding:utf-8 -*-import sysimport tab # tab模块用于让

2017-12-30 16:11:42 2625

原创 Python练习题3

使用Python语言将Linux系统中的passwd文件按用户的优先级进行排序import codecsimport osclass SortPasswd(object): def __init__(self): self.passwd = "passwd" self.newpasswd = "newPasswd" self.c

2017-12-28 08:21:41 308

原创 九宫格练习题

九宫格里的9个数字,横竖斜对角线加起来等于15。class NinePaper(object): def __init__(self): print(''' _____________ |_A_|_B_|_C_| |_D_|_E_|_F_|

2017-12-28 08:17:44 7364

原创 python练习题1

使用Python语音求出ABCD * 9 = DCBA实现代码如下:class CountNumber(object): '''ABCD * 9 = DCBA 通过计算机的方法,给我们计算出A = ? B = ? C = ? D = ? A: 1-9 B: 0-9 C: 0-9 D: 1-9 A != B != C !=D ''

2017-12-26 08:27:26 397

原创 celery多实例与多任务

celery多实例简单的项目目录结构如下:/root/test/proj/celery├── celeryconfig.py├── celery.py├── __init__.py└── tasks.py主程序celery.py#!/usr/bin/env python#coding:utf8#拒绝隐式引入,因为celery.py的名字和celery的包名冲突,需要使用这

2017-12-21 08:22:29 4418

原创 celery简介

Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery, 举几个实例场景中可用的例子:你想对100台机器执行一条批量命令,可能会花很长时间 ,但你不想让你的程序等着结果返回,而是给你返回 一个任务ID,你过一段时间只需要拿着这个任务id就可以拿到任务执行结果, 在任务执行ing进行

2017-12-20 11:40:15 258

原创 queue模块

queue模块线程间以队列的形式进行通信,Queue 是提供队列操作的模块,有三种队列:FIFO(先进先出)、LIFO(后进先出)、Priority(根据优先级来进出)q = Queue.Queue() :用于定义队列的最大长度,如 Queue.Queue(5) 表示队列的最大长度为 5(意思即只能存5个数据),如果不加任何参数则不限长度q.empty() :用于查看队列是否为空,

2017-12-19 08:06:42 387

原创 多进程消息队列

多进程的消息队列消息队列”是在消息的传输过程中保存消息的容器。消息队列最经典的用法就是消费者和生成者之间通过消息管道来传递消息,消费者和生成者是不通的进程。生产者往管道中写消息,消费者从管道中读消息。操作系统提供了很多机制来实现进程间的通信 ,multiprocessing模块就提供了Queue和Pipe两种方法来实现。使用multiprocessing里面的Queue来实现消息队

2017-12-16 10:02:20 1833

原创 多线程变量、池

多线程共享变量多线程和多进程不同之处在于多线程本身就是可以和父进程共享内存的,这也是为什么其中一个线程挂掉以后,为什么其他线程也会死掉的道理。import threadingdef worker(): l.append("wxp") l.append("wxx") l.append("wpp")if __name__ == "__main__": l

2017-12-15 08:02:40 273

原创 多线程实例、锁

多线程实例进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是死的(静态的),进程是活的(动态的)。进程可以分为系统进程和用户进程。凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;用户进程就不必我多讲了吧,所有由你启动的进程都是用户进程。进程是操作系统进行资源分配的单位。 它的思想简单介绍如下:在操作系统的管理下,所

2017-12-14 07:53:31 1086

原创 多进程、进程池

多进程Manager数据共享的方式只有两种结构Value和Array。Python中提供了强大的Manage专门用来做数据共享的,其支持的类型非常多,包括,Value, Array,list,dict, Queue, Lock等。from multiprocessing import Process, Managerdef func(dt, lt): for i in range

2017-12-13 06:05:57 376

原创 多进程锁、共享内存

多进程锁当我们用多进程来读写文件的时候,如果一个进程是写文件,一个进程是读文件,如果两个文件同时进行,肯定是不行的,必须是文件写结束以后,才可以进行读操作。或者是多个进程在共享一些资源的时候,同时只能有一个进程进行访问,那就要有一个锁机制进行控制。acquire()locked()release() //释放锁,使用前线程必须已获得锁定,否则抛出异常lock=thread.al

2017-12-12 08:28:56 1435

原创 python多进程相关知识

多线程与多进程概念多进程即一个进程会产生很多子进程,每个子进程都有自己的 PID,还有自己的内存空间;多线程即一个进程里面包含很多线程,只有一个 PID,每个线程之间内存共享,因为都是在一个进程里,CPU 的一个核会处理一个线程或一个进程。比如一个播放器就是一个多线程的软件,一个线程去处理声音,一个线程去处理画面,这两个线程是同时运行的(并行),这样声音和画面才能同步播放,如果是一个单进程的,

2017-12-09 06:44:13 235

原创 memcache常用方法

set() 设置一个键值对,如果Key不存在,则创建,存在,则修改replace 修改某个key的值,如果key不存在,报异常add() 添加一条键值对,如果key已存在,重复执行add操作会报异常add() 和set() 的区别:add()用于向memcache添加一个要缓存的数据,当key存在时,调用失败set()用于设置一个指定的key的缓存内容,key存在修改,不存在创

2017-12-08 08:14:00 339

原创 python下的Memcache操作

安装 Memcache 服务端yum install -y libevent libevent-devel nc # 安装 libevent,Memcahced 利用 libevent 库进行异步事件处理yum install -y memcached # 安装 Memcahced 服务端memcached -m 16m -p

2017-12-06 10:56:48 896

原创 hash类型操作

hash类型操作In [1]: import redisIn [2]: r = redis.Redis(host='127.0.0.1', port=6379) // 连接redisIn [3]: r.hset('h1', 'name', 'Tom') // hset() 用于设置字段值Out[3]: 1LIn [4]: r.hset('h1', 'age', 23)Out[4

2017-12-06 10:47:53 247

原创 rc脚本练习

rc脚本练习#!/usr/bin/env python#coding:utf8import sysimport osfrom subprocess import Popen, PIPEclass Process(object):'''memcached rc script'''args = {'USER':'memcached','PORT':11211,'MAXCONN'

2017-12-05 14:04:29 464

原创 python中redis字符串操作

字符串操作redis中的string 在内存中都是按照一个key对应一个valus来存储的import redisr = redis.Redis(host='127.0.0.1', port=6379) // 连接redisr.set('name', 'Tom') // set() 用于设置指定 key 值,如果 key

2017-11-28 08:18:12 902

原创 python中Redis安装及基本操作

NoSQL简介NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。虽然NoSQL的

2017-11-25 10:14:02 577

原创 python中MySQL数据的增删改查操作

删除数据表结构:[root@localhost ~]# mysql -uroot -ppzk123 -e "use test; desc t1;"+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+----

2017-11-24 08:18:55 1625

原创 python数据库中表的操作

创建表[root@localhost ~]# cat 1.py#!/usr/bin/env pythonimport MySQLdbdef connect_mysql(): db_config = { 'host': '127.0.0.1', 'port': 3306, 'user': 'root', 'passw

2017-11-23 08:27:29 1241

原创 python 游标、MySQL连接池、设计表

游标游标是系统为用户开设的一个数据缓冲区,存放 SQL 语句的执行结果,用法如下:In [1]: import MySQLdbIn [2]: c = MySQLdb.connect(user='root', passwd='pzk123', db='mysql') # 连接数据库In [3]: cus = c.cursor() # 创

2017-11-22 09:06:34 550

原创 python下的MySQL安装

安装客户端mysql数据库是最流行的数据库之一,所以对于python操作mysql的了解是必不可少的。Python标准数据库接口为Python DB-API, Python DB-API为开发人员提供了数据库应用 编程接口。参考地址:https://wiki.python.org/moin/DatabaseInterfaces,你可以查看python支持数据库的详细列表。不同的数据库需要下载不

2017-11-21 08:21:59 564

原创 python re的各种方法

re的matche方法和search方法#正则对象的match匹配import rereg = re.compile(r'(hello w.*)(hello Y.*)')print(dir(reg))a = 'hello world hello YangLing'result = reg.match(a)print(result)print(result.group())b

2017-11-16 08:05:12 1373

原创 python正则表达式

常用正则表达式. :匹配任意一个字符^ :匹配以什么开头的字符,如果放在中括号中表示取反,如 ^abc 表示匹配以 abc 开头的字符,[^abc] 表示匹配 abc 之外的字符:匹配以什么结尾的字符*:匹配零个或多个星号前面的字符,如可以匹配、、、等等如可以匹配、、、等等,如abc?只能匹配ab、abc :用于转义,比如我要匹配 这个字符,但是用于匹配以什么结尾的字符,因此我就可以用

2017-11-15 07:57:11 756

原创 python中文件json的用法

文件json的使用    Json简介:Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式。Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式。现在也常用于http请求中,所以对json的各种学习,是自然而然的事情。而我们将一下我们平时工作中最长用的两种方式。JSON在线解析及格式化网址:json.cn。json有四种方法

2017-11-14 08:05:36 715

原创 python常用模块

logging日志是我们排查问题的关键利器,写好日志记录,当我们发生问题时,可以快速定位代码范围进行修改logging将日志打印到屏幕,日志级别大小关系为:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET,当然也可以自己定义日志级别默认logging默认的日志级别是info日志的输出格式及方式 logging.basicCon

2017-11-11 08:09:49 440

原创 python import、datetime获取时间及转换

import在Python中,我们创建的文件基本都是以.py结尾,那一个.py的文件就称之为模块。为了方便管理模块,Python中又引入了包(Packge)这个概念,每个包下面都有一个__init__.py文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。__init__.py可以是空文件,也可以有Python代码。因为__init__.py本身就是一个

2017-11-10 06:58:15 5239

原创 python异常

异常既是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。最常用异常的形式。异常的常用形式try:        正常的操作    ..........    except    

2017-11-09 08:01:26 173

原创 python类的重写、私有变量

类的重写在python中 有时需要进行重写,重写是继承机制中的一个重要部分, 可以重写一般方法也可以重写构造方法,构造方法是用来初始化新创建对象的状态。class parent(object): name = 'parent' age = 100 def __init__(self): print('my name is parent') d

2017-11-07 22:07:40 437

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除