我在跑爬虫程序的时候,由于爬虫程序的等待目标服务器返回数据的时间很长,而cpu占用很低,所以经常挂着代理一跑就跑好几百个。但是爬虫程序通常是写了死循环,或直到分配给该进程的任务都跑完才退出的。如果我们想中途结束掉这些任务,是没办法手工一个一个kill掉的。那么该如何结束这些进程呢?我的方法就是在运行爬虫进程时,记录该进程的Pid,然后在需要手动结束时,再用语句kill掉它们。foriin{1..100}donohuppythonNetEase_comms_
系统 2019-09-27 17:56:59 1893
总是记不住API。昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧:python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。得到当前工作目录,即当前Python脚本工作的目录路径:os.getcwd()返回指定目录下的所有文件和目录名:os.listdir()函数用来删除一个文件:os.remove()删除多个目录:os.removedirs(r“c:\python”)检验给出的路径是否是一个文件:os.path.i
系统 2019-09-27 17:55:05 1893
三种方法:①直接使用dict②使用defaultdict③使用Counterps:`int()`函数默认返回0①dicttext="I'mahandsomeboy!"frequency={}forwordintext.split():ifwordnotinfrequency:frequency[word]=1else:frequency[word]+=1②defaultdictimportcollectionsfrequency=collections.d
系统 2019-09-27 17:54:44 1893
定义:不同的子类对象调用相同的父类方法,产生不同的执行结果多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承)多态是调用方法的技巧,不会影响到类的内部设计关键点:继承改写(重载)#定义狗类classDog:defwork(self):print("狗是人类的好朋友")#定义警犬类classArmyDog(Dog):defwork(self):print('追击敌人')#定义缉毒犬类classDrugDog(Dog):defwor
系统 2019-09-27 17:54:27 1893
粘包问题TCP协议在传输过程中会出现数据粘包问题讲一下TCP和UDP的区别,都是传数据的协议,没有好坏之说,只是不同的应用需求可能会更好选择哪一个协议TCP:适合传输数量大,需要建立连接,会出现粘包问题,粘包问题可以解决,确定传入的长度,接收同样长度就可以保证一次性传输完UDP:适合传输数据量小,没有粘包,不需要连接,一次性传输,下一次就是新的数据,弊端就是数据丢失,不安全QQ是用什么协议呢?按理应该可以用UDP协议,但是实际用的是TCP协议,这是历史遗留
系统 2019-09-27 17:53:03 1893
英文文档classmethod(function)Returnaclassmethodforfunction.Aclassmethodreceivestheclassasimplicitfirstargument,justlikeaninstancemethodreceivestheinstance.Todeclareaclassmethod,usethisidiom:classC:@classmethoddeff(cls,arg1,arg2,...):.
系统 2019-09-27 17:52:28 1893
Python2.7.4OS―W7x861.简介Label用于在指定的窗口中显示文本和图像。最终呈现出的Label是由背景和前景叠加构成的内容。Label组件定义函数:Label(master=None,cnf={},**kw)其中,kw参数是用来自定义lable组件的键值对。2.背景自定义背景的话,有三部分构成:内容区+填充区+边框<1>内容区参数有:width,length用于指定区域大小,如果显示前景内容是文本,则以单个字符大小为单位;如果显示的是图像
系统 2019-09-27 17:51:34 1893
基本原理蒙特卡罗方法通过抓住事物运动的几何数量和几何特征,利用数字方法来加以模拟,即进行一种数字模拟实验。它是以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题的近似解。主要步骤如下:1.构造或描述概率过程2.实现从已知概率分布抽样3.建立各种估计量示例一:π值的计算importnumpyasnpimportpandasaspdimportmatplotlib.pyplotasplt%matplotlibinline#π的计算n=
系统 2019-09-27 17:50:56 1893
**装饰器**1.装饰器的概念装饰器的本质就是一个函数,它的作用是为其他函数添加一个新的功能,但是不改变原函数的源代码和调用方式。装饰器的两大原则:不修改被修饰函数的源代码不修改被修饰函数的调用方式2.装饰器的知识储备(或者我们可以理解成,一个装饰器是由什么组成)装饰器=高阶函数+函数嵌套+闭包3.装饰器的实现首先我们定义一个累加求和的函数importtimedefcal():res=0foriinrange(100):res+=itime.sleep(1
系统 2019-09-27 17:50:53 1893
分支结构的应用场景迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种结构的代码我们称之为顺序结构。然而仅有顺序结构并不能解决所有的问题,比如我们设计一个游戏,游戏第一关的通关条件是玩家获得1000分,那么在完成本局游戏后我们要根据玩家得到分数来决定究竟是进入第二关还是告诉玩家“GameOver”,这里就会产生两个分支,而且这两个分支只有一个会被执行,这就是程序中分支结构。类似的场景还有很多,给大家一分钟的时间,你应该可以想到至少5个以上这样的
系统 2019-09-27 17:49:23 1893