python开发之路
主要记录python的基本知识以及研究过程中一些经典案例代码
白金牧场
桃李不言 | 下自成蹊
展开
-
Python案例-网络编程-使用RabbitMQ实现RPC简易分享
RPC(Remote Procedure Call Protocol)-远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC 采用C/S模式。首先,客户机调用进程发送一个有进程参数的调用消息到服务端的消息队列里,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下原创 2016-07-30 11:39:00 · 2465 阅读 · 0 评论 -
Python案例-网络编程-I/O多路复用-select方法用例
I/O多路复用(I/O multiplexing),可以简要理解为:多条socket复用一个I/O管理线程;存在意义:用来监听和管理socket连接是否有变换。早期管理方法:多进程并发模型(每一个socket,分配一个独立的进程来管理) 近期管理方法:I/O多路复用(单个线程通过跟踪记录每个socket的状态来管理多个socket连接) 详细解释可以参考:实现I/O多路复用主要有三种方法:sel原创 2016-07-26 22:49:13 · 1431 阅读 · 0 评论 -
Python案例-网络编程-进程池
Python的进程池需要借用name方法来实现,具体内容如下#!/usr/bin/env python # -- coding = 'utf-8' -- # Author Allen Lee # Python Version 3.5.1 # OS Windows 7 from multiprocessing import Pool import timedef f1(arg): time.s原创 2016-07-23 10:01:20 · 1522 阅读 · 0 评论 -
Python案例-网络编程-线程池
线程池:python2.*没有真正的线程池, python3.*功能不强,所以一般要么自己写,要么用第三方软件第一种:通过for循环配合队列来实现多线程#!/usr/bin/env python # -- coding = 'utf-8' -- # Author Allen Lee # Python Version 3.5.1 # OS Windows 7 import queue import原创 2016-07-23 08:45:40 · 1449 阅读 · 0 评论 -
Python案例-网络编程-异步解耦
今天跟大家分享一个老生常谈的消费者生产者模型以下为代码实现的一个模拟场景: 3个生产者,在不断提供服务,处理需求,假设1s处理一个。 20个消费者,在不断消耗供给产品,提交需求,假设3s消耗一个。 分析:由于消费者的提交需求能力 和 生产者处理需求的能力 不对等,于是出现了供不应求的供销矛盾。 问题:一般情况下,在供不应求时,会有大量的需求被挂起,也就是排队,排队期间消费者不得离开,否则当前原创 2016-07-23 09:18:43 · 2360 阅读 · 0 评论 -
Python案例-网络编程-FTP&断点续传&进度条&上传下载
本次ftpV2,完善了上次未完成的代码,实现上传下载,断点续传,客户端任务进度条等功能 废话不多说,上代码,详细解释,请查看代码注释Server端#!/usr/bin/env python # --coding = utf-8 # Author Allen Lee import socketserver,json,os import subprocess#创建ftpserver类,并继承s原创 2016-07-16 11:45:51 · 7367 阅读 · 0 评论 -
Python案例-网络编程-socket-Ftp&多用户登录
本次Ftp的案例使用面向对象的编程方式。 其中使用反射的机制来调用本身的put和get以及cmd方法。 借用socketserver模块来实现多用户登录。具体看代码Server端#!/usr/bin/env python # --coding = utf-8 # Author Allen Lee import socket,subprocess,socketserver,json #创建原创 2016-07-09 12:42:53 · 2298 阅读 · 1 评论 -
Python案例-网络编程-socket-解决ssh消息粘包问题
废话不多说,上代码,具体逻辑分析详见注释,本次目的是解决上一个案例中出现的,超出recv(num)设置的值时,信息包会不完整,并与下一个client请求的信息包粘在一块,也就是俗称的粘包问题。 Server端代码:#!/usr/bin/env python # --coding = utf-8 # Author Allen Lee import socket,subprocess,socke原创 2016-07-08 13:15:10 · 1183 阅读 · 0 评论 -
Python案例-网络编程-socket入门-server&client
废话不多说,上代码,具体逻辑分析详见注释,本次目的是实现一个单进程的ssh功能。 这是第一版单进程单任务的模型,随后还会有粘包处理、多进程以及ftp等实例Server端#!/usr/bin/env python # -- coding = 'utf-8' -- # Author Allen Lee # Python Version 3.5.1 # OS Windows 7import subpro原创 2016-07-08 08:45:41 · 1330 阅读 · 0 评论 -
Python案例-开发之路-设计模式-单例模式
#!/usr/bin/env python # -- coding = 'utf-8' -- # Author Allen Lee # Python Version 3.5.1 # OS Windows 7 #设计模式,单例模式,单实例 class Foo: instance = None def __init__(self,name): self.name = name原创 2016-07-01 22:59:45 · 680 阅读 · 0 评论 -
Python案例-开发之路-有序字典
#!/usr/bin/env python # -- coding = 'utf-8' -- # Author Allen Lee # Python Version 3.5.1 # OS Windows 7 #有序化字典 class Mydict(dict): def __init__(self): self.li = [] super(Mydict,self)原创 2016-07-01 22:57:06 · 648 阅读 · 0 评论 -
Python案例-开发之路-计算器
这篇来讲一讲python实现四则混合运算的计算器案例 以此表达式为例8 * 12 +(6 - ( 5 * 6 - 2) / 77 + 2 )* ( 3 - 7 )+ 8#!/usr/bin/env python # -- coding = 'utf-8' -- # Author Allen Lee # Python Version 3.5.1 # OS Windows 7 """ 计算此表达式原创 2016-06-25 12:32:57 · 1363 阅读 · 0 评论 -
Python案例-开发之路-验证码实现
简要说明:利用python的内建函数chr可以将ASCII对照表中的数字转化为对应字符的功能,jion拼接字符串,以及random可以产生随机数的模块,来实现验证码的案例 Python version:3.5.1 验证环境:Windows 7 代码如下: #!/usr/bin/env python # coding = 'utf-8' #Author Allen Lee at 201606原创 2016-06-12 15:55:15 · 1313 阅读 · 0 评论 -
Python案例-开发之路-进度条实现
简单说明:利用python的sys模块中的标准输出来实现 python版本:3.5.1 测试环境:Windows 7 代码如下: #!/usr/bin/env python # coding = 'utf-8' #Author Allen Lee,at 20160611 import sys def view_bar(num,total): ret = num / total原创 2016-06-12 15:19:59 · 1633 阅读 · 1 评论 -
Python案例-开发之路-文件内容查找并修改
对于配置文件的内容匹配以及insert和update操作原创 2016-06-06 11:39:52 · 1429 阅读 · 0 评论