
python
文章平均质量分 51
comprel
这个作者很懒,什么都没留下…
展开
-
python远程调用rpc模块xmlrpclib
RPC(Remote Procedure Call Protocol)是远程调用协议,它通过网络请求服务到远端服务器,服务器根据请求做出响应,将结果返回它是一种C/S模式,客户端可以调用远程服务器上的参数(类似URL)并返回结果 利用rpc可以实现系统的分布式架构,可以将功能分解到多台服务器上进行实现,同时也将也可以将负载打散,分布到不同服务器上,整合计算资源在openstack中就大量使用了rp原创 2017-05-23 00:10:29 · 10189 阅读 · 0 评论 -
python使用threading.condition实现生产者消费者
threading模块 threading.Condition() ,返回condition对象,相当于高级锁对象,可以使一个或多个线程等待直到被其他线程调度或通知condition条件对象提供如下方法: 1.threading.Condition() 2.acquire(*args) 获取锁 3.release()释放锁 4.wait([timeout]) 等待 5.notify(n原创 2017-05-29 01:44:32 · 4168 阅读 · 0 评论 -
python使用paramiko模块实现ssh登录执行命令
python ssh登录,使用paramiko模块 在实际使用中,往往是禁止root进行登录,因此需要进行用户切换。#coding=utf8import paramikoimport timeimport logging'''if user root,can not login,must use user xx and then switch to rootnot root ,then r原创 2017-04-10 16:49:28 · 13821 阅读 · 0 评论 -
python使用xlrd模块读取xlsx文件中的ip
程序中经常需要使用excel文件,批量读取文件中的数据 python读取excel文件可以使用xlrd模块pip install xlrd安装模块示例:#coding=utf8import xlrdfrom os import pathimport sysfilename='ip.xlsx'if not path.isfile(filename): print "err: not e原创 2017-04-17 22:52:40 · 11836 阅读 · 0 评论 -
python安装更新和pip安装使用阿里源及yum问题解决
centos 7 python版本更新原版本2.7.5 更新版本2.7.13 注:由于linux自带的python,系统对其有一定的依赖,因此建议保留原来的版本;常常出现的是yum功能问题;另 centos 7版本可以使用yum安装的方式进行pip安装,比手动安装更快捷方便1.安装依赖包yum -y install gccyum install -y zlib-devel bzip2-devel原创 2017-05-17 23:57:17 · 19738 阅读 · 0 评论 -
python2.7.13自动化安装脚本含pip安装配置阿里源yum问题解决
linux python 2.7.13 自动化安装脚本 包含python 2.7.13安装,pip安装,pip配置为阿里源,安装更新python后yum 问题:ImportError: No module named urlgrabber.grabber 的处理#!/bin/bash#######################################################原创 2017-05-18 00:08:41 · 11097 阅读 · 1 评论 -
python网络编程基础socket模块
python 网络编程 socketsocket网络套接字,提供基础的网络编程服务 SocketServer 提供较高级的服务,简化网络编程socket提供如下方法:异常:1.exception socket.error 套接字相关的错误,返回(errno, string),或者一个字符串。socket.error 是IOError错误的一种2.exception socket.herror原创 2017-05-31 22:43:52 · 5259 阅读 · 0 评论 -
python使用socket实现多线程端口扫描
使用socket主要是判断是否端口能否联通 socket<<详情参考>>1.socket.connect() 检测端口,若端口不能联通,则会抛出异常,若无异常,则端口存活,使用try-except异常捕获处理,进而进行端口扫描这里将使用100个线程,每个端口连接都要检查是否超过65535#coding=utf8import socketimport threadingdef scan(hos原创 2017-05-31 23:34:52 · 5910 阅读 · 0 评论 -
python简单的加权随机数
随机访问list资源,但资源访问有一个权重。建立wightlist 权重列表,表示对应的资源编号的权重值,依据权重值生成重读个资源,加入到wlatch 链表中,然后就可用依据random随机生成数字来实现加权的随机,权重越大,则资源个数越多,则随机访问到的概率也就变大。示例如下:#coding=utf8import randomimport timelist = { 1: "test1"原创 2017-06-02 12:50:48 · 1950 阅读 · 0 评论 -
python使用queue队列实现生产者消费者
使用queue队列实现生产者消费者问题 另threading.condition也可实现生产者消费者问题,<<详情参考>>示例: 生产者可以有多个,消费者可以有多个,但是市场容量是有一定限度的 一件产品。投放到市场上,市场需求可以看作一个箱子box,是容量限度 当小于box大小,即队列没有满full,生产者可以生产,否则等待消费者消费,生产者有生产效率,使用speed表示 当产品大于0原创 2017-05-30 20:08:52 · 3551 阅读 · 0 评论 -
python多线程-queue队列类型优先级队列,FIFO,LIFO
Queue在python3中重命名为queue,在python2到python3转换中可以自动转换队列可应用在多个生产者多个消费者的模型中,并且在多线程中可用于线程之间数据信息的安全交换通信,防止冲突。 在队列中已经实现多线程的锁机制队列Queue提供三种队列类型主要区别是操作顺序的不同: 1.class Queue.Queue(maxsize=0) FIFO队列,先进先出,maxsi原创 2017-05-30 20:00:37 · 6012 阅读 · 0 评论 -
python使用SimpleXMLRPCServer实现简单的rpc
模块: SimpleXMLRPCServerpython标准库中自带的模块,无需另外安装在python3中 SimpleXMLRPCServer已经被合并到xmlrpc.server定义:class SimpleXMLRPCServer.SimpleXMLRPCServer(addr[, requestHandler[, logRequests[, allow_none[, encoding[,原创 2017-05-23 00:22:07 · 12444 阅读 · 1 评论 -
python分布式rpc框架zerorpc安装及使用教程
rpc使构建分布式系统简单许多,在云计算的实现中有很广泛的应用 rpc可以是异步的python实现rpc,可以使用标准库里的SimpleXMLRPCServer,另外zerorpc是第三方库支持rpc zerorpc 是基于 ZeroMQ 和 MessagePack,速度相对快,响应时间短,并发高zerorpc需要额外安装,而SimpleXMLRPCServer不需要额外安装,但是SimpleX原创 2017-05-25 22:34:27 · 14878 阅读 · 0 评论 -
python多线程模块thread
thread介绍python提供多线程模块thread及threading,以及队列Queue,其中thread相对比较基础,不容易控制,但并不是说明无用,有些老司机偶尔会使用thead参看底层堆栈内存,官方建议使用threading模块,thread模块在python3版本中被重命名为_threadPython解释器中可以同时运行多个线程,但是在任意时刻只能有一个线程在解释器运行。 Python原创 2017-05-26 23:49:36 · 5465 阅读 · 0 评论 -
python使用Ctrl+C中断threading多线程死循环及setDaemon守护进程
threading多线程,没有提供线程退出的方法。 如果在死循环多线程,则即使CTRL+C也没有任何效果: 例如:#coding=utf8import threadingimport timedef showperson(name): while True: time.sleep(1) print 'show person :%s'%nameprint '原创 2017-05-29 01:32:26 · 10192 阅读 · 0 评论 -
python多线程中Lock()与RLock()锁
资源总是有限的,程序运行如果对同一个对象进行操作,则有可能造成资源的争用,甚至导致死锁 也可能导致读写混乱锁提供如下方法: 1.Lock.acquire([blocking]) 2.Lock.release() 3.threading.Lock() 加载线程的锁对象,是一个基本的锁对象,一次只能一个锁定,其余锁请求,需等待锁释放后才能获取4.threading.RLock() 多重锁,在原创 2017-05-29 01:38:54 · 28713 阅读 · 0 评论 -
python多线程threading使用Semaphore或BoundedSemaphore实现并发限制
信号量:class threading.Semaphore([value]) values是一个内部计数,values默认是1,如果小于0,则会抛出 ValueError 异常,可以用于控制线程数并发数1.acquire([blocking]) 2.release() 例如: 可用用来限制数据库的连接数maxconnections = 5...pool_sema = BoundedSe原创 2017-05-29 01:48:37 · 16582 阅读 · 1 评论 -
python多线程threading事件对象event实现线程阻塞及timer时间对象
事件对象: 可以用于简单的进程之间的通信,当线程需执行其他操作时,阻塞线程 class threading.Event 1.is_set() / isSet() 2.set() 3.clear() 4.wait([timeout]) 示例:# encoding: UTF-8import threadingimport timeevent = threading.Event()de原创 2017-05-29 01:51:49 · 2538 阅读 · 0 评论 -
python多线程模块threading学习总结
python除了thread模块,提供了更高级的threading模块来实现多线程 另外python在多核cpu中为提高并发,提供了multiprocessing多进程threading模块提供的方法:1.threading.active_count() 1.threading.activeCount() 获取正在运行的线程数量2.threading.Condition() 相当于高级锁对象,原创 2017-05-29 01:18:34 · 5051 阅读 · 0 评论 -
python正则表达式re
python 正则表达式正则表达式中常用的特殊字符,通配符:string 匹配字符串string ^ 匹配字符串的开头 $ 匹配字符串的末尾。. 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。 […] 用来表示一组字符,单独列出:[abc] 匹配 ‘a’,’b’或’c’ [^…] 不在[]中的字符:[^abc] 匹配除了a,b原创 2017-06-30 22:30:03 · 513 阅读 · 0 评论