python
zzh_1032399080
这个作者很懒,什么都没留下…
展开
-
Saltstack二次开发
Saltstack简介Salt 是 一个配置管理系统,能够维护预定义状态的远程节点(比如,确保指定的报被安装,指定的服务在运行) 一个分布式远程执行系统,用来在远程节点(可以是单个节点,也可以是任意规则挑选出来的节点)上执行命令和查询数据 开发其的目的是为远程执行提供最好的解决方案,并使远程执行变得更好,更快,更简单 Saltstack(中国用户组 www.saltstack.cn )基于py原创 2018-02-08 11:13:08 · 541 阅读 · 2 评论 -
queue模块
queue模块线程间以队列的形式进行通信,Queue 是提供队列操作的模块,有三种队列:FIFO(先进先出)、LIFO(后进先出)、Priority(根据优先级来进出)q = Queue.Queue() :用于定义队列的最大长度,如 Queue.Queue(5) 表示队列的最大长度为 5(意思即只能存5个数据),如果不加任何参数则不限长度q.empty() :用于查看队列是否为空,原创 2017-12-19 08:06:42 · 342 阅读 · 0 评论 -
memcache常用方法
set() 设置一个键值对,如果Key不存在,则创建,存在,则修改replace 修改某个key的值,如果key不存在,报异常add() 添加一条键值对,如果key已存在,重复执行add操作会报异常add() 和set() 的区别:add()用于向memcache添加一个要缓存的数据,当key存在时,调用失败set()用于设置一个指定的key的缓存内容,key存在修改,不存在创原创 2017-12-08 08:14:00 · 300 阅读 · 0 评论 -
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 · 312 阅读 · 0 评论 -
多进程消息队列
多进程的消息队列消息队列”是在消息的传输过程中保存消息的容器。消息队列最经典的用法就是消费者和生成者之间通过消息管道来传递消息,消费者和生成者是不通的进程。生产者往管道中写消息,消费者从管道中读消息。操作系统提供了很多机制来实现进程间的通信 ,multiprocessing模块就提供了Queue和Pipe两种方法来实现。使用multiprocessing里面的Queue来实现消息队原创 2017-12-16 10:02:20 · 1752 阅读 · 0 评论 -
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 · 844 阅读 · 0 评论 -
多线程变量、池
多线程共享变量多线程和多进程不同之处在于多线程本身就是可以和父进程共享内存的,这也是为什么其中一个线程挂掉以后,为什么其他线程也会死掉的道理。import threadingdef worker(): l.append("wxp") l.append("wxx") l.append("wpp")if __name__ == "__main__": l原创 2017-12-15 08:02:40 · 240 阅读 · 0 评论 -
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 · 839 阅读 · 0 评论 -
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 · 218 阅读 · 0 评论 -
多线程实例、锁
多线程实例进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是死的(静态的),进程是活的(动态的)。进程可以分为系统进程和用户进程。凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;用户进程就不必我多讲了吧,所有由你启动的进程都是用户进程。进程是操作系统进行资源分配的单位。 它的思想简单介绍如下:在操作系统的管理下,所原创 2017-12-14 07:53:31 · 1042 阅读 · 0 评论 -
九宫格练习题
九宫格里的9个数字,横竖斜对角线加起来等于15。class NinePaper(object): def __init__(self): print(''' _____________ |_A_|_B_|_C_| |_D_|_E_|_F_|原创 2017-12-28 08:17:44 · 7134 阅读 · 0 评论 -
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 · 275 阅读 · 0 评论 -
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 · 1140 阅读 · 0 评论 -
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 · 1075 阅读 · 0 评论 -
基于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 · 701 阅读 · 0 评论 -
python爬虫学习
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。爬虫是模拟用户在浏览器或者App应用上的操作,把操作的过程、实现自动化的程序当我们在浏览器中输入一个url后回车,后台会发生什么?比如说你输入http://v.apelearn.com简单原创 2018-01-18 11:44:21 · 219 阅读 · 0 评论 -
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 · 344 阅读 · 0 评论 -
Python爬虫学习进阶
Python的urllib和urllib2模块都做与请求URL相关的操作,但他们提供不同的功能。他们两个最显着的差异如下:urllib2可以接受一个Request对象,并以此可以来设置一个URL的headers,但是urllib只接收一个URL。这意味着,你不能伪装你的用户代理字符串等。urllib模块可以提供进行urlencode的方法,该方法用于GET查询字符串的生成,urllib2的原创 2018-01-24 15:00:36 · 2135 阅读 · 0 评论 -
SocketServer 模块
SocketServer 模块是一个基于 socket 模块的高级别的套接字通讯模块,用于简化网络客户与服务器的实现,它支持使用多进程或多线程处理客户端请求。“` [root@localhost ~]# cat socketserver.py !/usr/bin/env python-- coding:utf-8 --import SocketServerclass My原创 2018-01-06 20:26:28 · 356 阅读 · 0 评论 -
使用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 · 2537 阅读 · 0 评论 -
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 · 3926 阅读 · 0 评论 -
直播课爬虫代码
'''爬虫阿铭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 · 318 阅读 · 0 评论 -
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 · 432 阅读 · 0 评论 -
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 · 4266 阅读 · 0 评论 -
python中文件json的用法
文件json的使用 Json简介:Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式。Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式。现在也常用于http请求中,所以对json的各种学习,是自然而然的事情。而我们将一下我们平时工作中最长用的两种方式。JSON在线解析及格式化网址:json.cn。json有四种方法原创 2017-11-14 08:05:36 · 657 阅读 · 0 评论 -
python高阶和匿名函数
高阶函数高阶函数:就是把函数当成参数传递的一种函数#map()函数,第一个参数为自定义函数,第二个参数为可迭代对象list =(1,2,3,4,5)def f2(x): return x*xresult = map(f2,list)print result# reduce()函数必须接收两个参数,每次把可迭代对象的前两个参数作为函数的实参传入到f函数中# 把每次运算的结原创 2017-11-03 08:09:29 · 142 阅读 · 0 评论 -
python常用模块
logging日志是我们排查问题的关键利器,写好日志记录,当我们发生问题时,可以快速定位代码范围进行修改logging将日志打印到屏幕,日志级别大小关系为:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET,当然也可以自己定义日志级别默认logging默认的日志级别是info日志的输出格式及方式 logging.basicCon原创 2017-11-11 08:09:49 · 404 阅读 · 0 评论 -
python的函数(一)
函数的定义函数的一般形式:定义一个函数,需要以下规则: 函数代码块以def关键字开头,后接函数标识符名称和圆括号(),圆括号里的参数为形参。 任何传入参数和变量必须放在圆括号中间,圆括号中间可以用来定义参数。 函数的第一行语句可以选择性地使用文档字符串一用于存放函数说明。 函数内容以冒号起始,并且缩进。return [表达式]结束函数,选择性的返回一原创 2017-11-02 05:47:05 · 170 阅读 · 0 评论 -
python异常
异常既是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。最常用异常的形式。异常的常用形式try: 正常的操作 .......... except原创 2017-11-09 08:01:26 · 143 阅读 · 0 评论 -
python文件练习
把一个数字的list从小到大排序,然后写入文件,然后从文件中读取出来文件内容,然后反序,在追加到文件的下一行中import codecsf1 = codecs.open('4.txt','w')list = [12,4,8,20,54,35,60,100,72]list.sort()f1.write(str(list))f1.close()with open('4.txt') a原创 2017-10-31 08:47:06 · 639 阅读 · 1 评论 -
python类的重写、私有变量
类的重写在python中 有时需要进行重写,重写是继承机制中的一个重要部分, 可以重写一般方法也可以重写构造方法,构造方法是用来初始化新创建对象的状态。class parent(object): name = 'parent' age = 100 def __init__(self): print('my name is parent') d原创 2017-11-07 22:07:40 · 395 阅读 · 0 评论 -
python的类、对象、继承
类的一般形式类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。创建类我们一般用class关键字来创建一个类,class后面跟类名字,可以自定义,最后以冒号结尾,形式如下:class 类名:类的属性类的内容class ren(object): "this is human class"原创 2017-11-07 08:18:48 · 224 阅读 · 0 评论 -
python文件操作
读取文件内容import codecs#打开文件的几个步骤1.open文件 2.文件操作(读、写) 3.关闭文件f = codecs.open('1.txt')print (f.read())result = f.read()result = result.replace('1','A')print (result)print (type(result))print (dir(原创 2017-10-28 11:32:40 · 176 阅读 · 0 评论 -
python生成式和生成器
生成式和生成器通过一句简洁的语法就可以对一组元素进行过滤,还可以对得到的元素进行转换处理。语法格式为:[expfor val in collection if condition]li = [x*x for x in xrange(1,101) if x%2==0]print (li)#生成式类似于函数def funa(): a = [] for x in xra原创 2017-11-04 11:23:08 · 285 阅读 · 0 评论 -
python正则表达式
常用正则表达式. :匹配任意一个字符^ :匹配以什么开头的字符,如果放在中括号中表示取反,如 ^abc 表示匹配以 abc 开头的字符,[^abc] 表示匹配 abc 之外的字符:匹配以什么结尾的字符*:匹配零个或多个星号前面的字符,如可以匹配、、、等等如可以匹配、、、等等,如abc?只能匹配ab、abc :用于转义,比如我要匹配 这个字符,但是用于匹配以什么结尾的字符,因此我就可以用原创 2017-11-15 07:57:11 · 673 阅读 · 0 评论 -
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 · 513 阅读 · 0 评论 -
python中Redis安装及基本操作
NoSQL简介NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。虽然NoSQL的原创 2017-11-25 10:14:02 · 516 阅读 · 0 评论 -
多进程、进程池
多进程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 · 339 阅读 · 0 评论 -
python中MySQL数据的增删改查操作
删除数据表结构:[root@localhost ~]# mysql -uroot -ppzk123 -e "use test; desc t1;"+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+----原创 2017-11-24 08:18:55 · 1548 阅读 · 0 评论 -
多进程锁、共享内存
多进程锁当我们用多进程来读写文件的时候,如果一个进程是写文件,一个进程是读文件,如果两个文件同时进行,肯定是不行的,必须是文件写结束以后,才可以进行读操作。或者是多个进程在共享一些资源的时候,同时只能有一个进程进行访问,那就要有一个锁机制进行控制。acquire()locked()release() //释放锁,使用前线程必须已获得锁定,否则抛出异常lock=thread.al原创 2017-12-12 08:28:56 · 1350 阅读 · 0 评论