先看服务端的代码importsys#importsocketimporttimeimportgeventfromgeventimportsocketfromgeventimportmonkeymonkey.patch_all()#类似于python中的黑魔法,把很多模块的阻塞的变成非阻塞的,比如socket中的rece和send都变#为不阻塞了defserver(port):s=socket.socket()s.bind(("127.0.0.1",port
系统 2019-09-27 17:55:42 1832
对于普通的生成器,第一个next调用,相当于启动生成器,会从生成器函数的第一行代码开始执行,直到第一次执行完yield语句(第4行)后,跳出生成器函数。然后第二个next调用,进入生成器函数后,从yield语句的下一句语句(第5行)开始执行,然后重新运行到yield语句,执行后,跳出生成器函数,后面再次调用next,依次类推。下面是一个列子:defconsumer():r='here'foriinxrange(3):yieldrr='200OK'+str(
系统 2019-09-27 17:55:41 1832
在有些情况下,存储数据的内存分配不能位于连续的内存块中。所以我们接受指针的帮助,其中数据和数据元素的下一个位置的地址也被存储。所以我们从当前数据元素的值中知道下一个数据元素的地址。通常这样的结构被称为指针。但在Python中,我们将它们称为节点。节点是各种其他数据结构链接列表和发can可以在python中处理的基础。创建节点这些节点是通过实现一个将保存指针和数据元素的类来创建的。在下面的例子中,我们创建了一个名为daynames的类来保存星期几的名称。ne
系统 2019-09-27 17:55:33 1832
最近需要实现一个服务程序的gracefulexiting,保证在退出前关闭所有已创建的子线程python借助KeyboardInterrupted异常响应键盘中断,因此首先尝试在子线程中try-catch这个异常(失败)查阅原因,键盘中断只有主线程可以响应并处理,子线程无法收到这个异常。因此可以使用类似这样的结构:cond=Truedefstart_task():whilecond:#dosomethingdefterminate_task():#brea
系统 2019-09-27 17:55:29 1832
为idle增加一个清屏的扩展ClearWindow就可以了(在http://bugs.python.org/issue6143中可以看到这个扩展的说明)。下面我说安装使用的方法。首先下载clearwindow.py(点击可直接下载,不能下载的可以右键保存,格式为py结尾),将这个文件放在PythonX\Lib\idlelib目录下(X为你的python版本),然后在这个目录下找到config-extensions.def这个文件(idle扩展的配置文件),
系统 2019-09-27 17:55:08 1832
Python函数编程——函数简介引子现在老板让你写一个监控程序,24小时全年无休的监控你们公司网站服务器的系统状况,当cpu\memory\disk等指标的使用量超过阀值时即发邮件报警,你掏空了所有的知识量,写出了以下代码whileTrue:ifcpu利用率>90%:#发送邮件提醒连接邮箱服务器发送邮件关闭连接if硬盘使用空间>90%:#发送邮件提醒连接邮箱服务器发送邮件关闭连接if内存占用>80%:#发送邮件提醒连接邮箱服务器发送邮件关闭连接上面的代码实
系统 2019-09-27 17:55:03 1832
目录一、进程同步二、为什么需要进程同步三、Python中实现进程同步四、多进程模拟同时抢票4.1通过锁控制进程资源访问总结尽管并发编程让我们能更加充分的利用IO资源,但是也给我们带来了新的问题:当多个进程使用同一份数据资源的时候,就会引发数据安全或顺序混乱问题。一、进程同步多个进程同时执行,为了相互制约各进程对资源的访问,使得各个进程的执行相互同步。在我的理解里,进程同步也算是进程间通讯(ipc)的一种手段。二、为什么需要进程同步多进程会引发抢占资源的问题
系统 2019-09-27 17:54:58 1832
之前想爬取一些淘宝的数据,后来发现需要登录,找了很多的资料,有个使用request的sessions加上cookie来登录的,cookie的获取在登录后使用开发者工具可以找到。不过这个登录后获得的网页的代码是静态的,获取动态网页还得另寻他法,一般需要的数据可以在网页的源码中得到,但是你知道的,有些动态加载的就不是那么简单了,而且我发现这样获得的源码中,有些想要获取的数据的格式是经过改动的,比如我要某个商品的具体链接,发现并不能直接使用。总体而言,这是一次失
系统 2019-09-27 17:54:47 1832
pycharm软件很好,但是不能在无图形的终端下使用,另外它们是“重量级选手”。如果偶尔需要vim编辑python程序,让vim支持python的语法提示不是更好!实际上,vim支持python提示,就是把python以及各种各样模块的常用指令都写到一个字典里。操作步骤如下:1、创建vim插件工作目录[root@zsl~]#mkdir-p~/.vim/bundle/2、下载插件[root@zsl~]#cd~/.vim/bundle/[root@zsl~]#
系统 2019-09-27 17:54:31 1832
一、语法while条件:执行代码while就是当的意思,它指当其后面的条件成立,就执行while下面的代码。例:写一个从0打印到10的程序count=0whilecount<=10:print('第%s次'%count)count+=1如果要打印1~10之间的偶数怎么办呢?那就得先搞清楚,怎么判断一个数字是偶数?能被2整除的就是偶数,但如何判断这个数是否能被2整除呢?简单,直接判断这个数除以2之后的余数是否为0就行了,这就用到了前面“Python之运算符”
系统 2019-09-27 17:54:23 1832