非阻塞IO(non-blockingIO)Linux下,可以通过设置socket使其变为non-blocking。当对一个non-blockingsocket执行读操作时,流程是这个样子:从图中可以看出,当用户进程发出read操作时,如果kernel中的数据还没有准备好,那么它并不会block用户进程,而是立刻返回一个error。从用户进程角度讲,它发起一个read操作后,并不需要等待,而是马上就得到了一个结果。用户进程判断结果是一个error时,它就知道
系统 2019-09-27 17:53:07 2012
#-*-coding:utf-8-*-importdatetime#给定日期向后N天的日期defdateadd_day(days):d1=datetime.datetime.now()d3=d1+datetime.timedelta(days)returnd3#昨天defgetYesterday():today=datetime.date.today()oneday=datetime.timedelta(days=1)yesterday=today-one
系统 2019-09-27 17:52:22 2012
Python适配器模式,代码,思考等#-*-coding:utf-8-*-#author:baoshanclassComputer:def__init__(self,name):self.name=namedef__str__(self):return'the{}computer'.format(self.name)defexecute(self):return'executesaprogram'classSynthesizer:def__init__(s
系统 2019-09-27 17:52:07 2012
主机环境:(Python2.7.9/Win8_64/bs4)利用BeautifulSoup4来抓取www.pm25.com上的PM2.5数据,之所以抓取这个网站,是因为上面有城市PM2.5浓度排名(其实真正的原因是,它是百度搜PM2.5出来的第一个网站!)程序里只对比了两个城市,所以多线程的速度提升并不是很明显,大家可以弄10个城市并开10个线程试试。最后吐槽一下:上海的空气质量怎么这么差!!!PM25.py复制代码代码如下:#!/usr/bin/envp
系统 2019-09-27 17:51:23 2012
步骤:1.掌握几种对象及其关系2.了解每类对象的基本操作方法3.通过转化关系转化涉及对象1.datetime>>>importdatetime>>>now=datetime.datetime.now()>>>nowdatetime.datetime(2018,1,12,23,9,12,946118)>>>type(now)2.timestamp>>>importtime>>>time.time()1421075455.5682433.timetuple>>
系统 2019-09-27 17:51:17 2012
klearnpythonAPILinearRegressionfromsklearn.linear_modelimportLinearRegression#线性回归#module=LinearRegression()module.fit(x,y)module.score(x,y)module.predict(test)LogisticRegressionfromsklearn.linear_modelimportLogisticRegression#逻辑回
系统 2019-09-27 17:51:04 2012
目录Python并发编程03/僵尸孤儿进程,互斥锁,进程之间的通信1.昨日回顾2.僵尸进程和孤儿进程2.1僵尸进程2.2孤儿进程2.3僵尸进程如何解决?3.互斥锁,锁3.1互斥锁的应用3.2Lock与join的区别4.进程之间的通信进程在内存级别是隔离的4.1基于文件通信(抢票系统)4.2基于队列通信Python并发编程03/僵尸孤儿进程,互斥锁,进程之间的通信1.昨日回顾1.创建进程的两种方式:函数,类.2.pid:os.getpid()os.getpp
系统 2019-09-27 17:50:57 2012
代理ProxyHandler处理器(代理)1、代理的原理:在请求目的网站之前,先请求代理服务器,然后让代理服务器去请求目的网站,代理服务器拿到目的服务器的网站数据后,再转发给我们的代码。2、http://httpbin.org/ip这个网站可以方便我们查看一些http请求参数3、使用代理的方法:ProxyHandle这个方法需要传入一个字典,key:请求schema,value:代理服务器ip+端口fromurllibimportrequest##url=
系统 2019-09-27 17:50:55 2012
文件的数据是存放于硬盘上的,因而只存在覆盖、不存在修改这么一说,我们平时看到的修改文件,都是模拟出来的效果,具体的说有两种实现方式。一、方式一将硬盘存放的该文件的内容全部加载到内存,在内存中是可以修改的,修改完毕后,再由内存覆盖到硬盘(word,vim,nodpad++等编辑器)。importoswithopen('37r.txt')asfr,\open('37r_swap.txt','w')asfw:data=fr.read()#全部读入内存,如果文件很
系统 2019-09-27 17:50:22 2012
迭代器和可迭代对象由for循环的内部原理说起list01=[2,434,5,6,8]foriteminlist01:print(item)大家有没有想过list类型对象为什么可以被for循环呢?能够被for循环的条件是:它是可迭代对象(iterable)。那么什么是可迭代对象呢?参考一下内置函数item()的官方说明文档:iter(object[,sentinel])返回一个iterator对象。根据是否存在第二个实参,第一个实参的解释是非常不同的。如果没
系统 2019-09-27 17:50:22 2012