非阻塞IO(non-blockingIO)Linux下,可以通过设置socket使其变为non-blocking。当对一个non-blockingsocket执行读操作时,流程是这个样子:从图中可以看出,当用户进程发出read操作时,如果kernel中的数据还没有准备好,那么它并不会block用户进程,而是立刻返回一个error。从用户进程角度讲,它发起一个read操作后,并不需要等待,而是马上就得到了一个结果。用户进程判断结果是一个error时,它就知道
系统 2019-09-27 17:53:07 2081
在上一篇文章中,我们讲了如何在linux上用python写一个守护进程。主要原理是利用linux的fork函数来创建一个进程,然后退出父进程运行,生成的子进程就会成为一个守护进程。细心观察的可能会发现,这个守护进程的运行身份是执行这个程序的用户,如果把这个守护程序加入到系统的服务项,那么这个守护程序的执行身份应该是root。一个情况出现了,root的权限比较大,如果通过这个root身份的守护程序来进行操作,危险性是比较大的。一种好的办法是生成一个身份为ro
系统 2019-09-27 17:52:32 2081
实现一个支持动态扩容的数组并完成其增删改查#通过python实现动态数组"""数组特点:占用一段连续的内存空间,支持随机(索引)访问,且时间复杂度为O(1)添加元素时间复杂度:O(n)删除元素时间复杂度:O(n)"""classArr:def__init__(self,capacity=10):"""构造函数:paramcapacity:数组最大容量,不指定的话默认为10"""self._capacity=capacityself._size=0#数组有效
系统 2019-09-27 17:52:16 2081
原型模式,也是用于创建对象时的一种设计方法。主要应用场景是:每次初始化某个对象时,需要传递大量的参数,很不方便,此时,可以使用原型模式,在已经创建并初始化的对象基础上,可以快速而又方便创建新的不同对象。主要原理:使用深拷贝,复制一个已创建的对象,然后使用__dict__.update()方法更新已创建对象中的参数值方式创建新对象。背景知识:在python中的类中,__dict__是一个字典,保存了所有该类中的变量,函数等参数。#coding=utf-8im
系统 2019-09-27 17:52:15 2081
代理ProxyHandler处理器(代理)1、代理的原理:在请求目的网站之前,先请求代理服务器,然后让代理服务器去请求目的网站,代理服务器拿到目的服务器的网站数据后,再转发给我们的代码。2、http://httpbin.org/ip这个网站可以方便我们查看一些http请求参数3、使用代理的方法:ProxyHandle这个方法需要传入一个字典,key:请求schema,value:代理服务器ip+端口fromurllibimportrequest##url=
系统 2019-09-27 17:50:55 2081
先给大家介绍下python微信自动回复功能1.当收到好友消息时,自动回复importrandomimportitchatimportrequestsimporttimedefget_tuling_response(_info):print(_info)#图灵机器人的网址api_url="http://www.tuling123.com/openapi/api"data={'key':'5ea0f11b5b6146239c52a47849387484','i
系统 2019-09-27 17:49:44 2081
逐步指示这是提供给更喜欢阅读的人的视频文本版本。我们将创建一个类似黑客新闻或Reddit的社交新闻网站。它将被称为“钢铁传闻”,作为一个分享关于“钢铁侠”的有趣传闻和对其进行投票的地方。屏幕录像第一部分的概述:目标虚拟环境-从零开始!模型管理-梦想的工作#78基本的模板通用视图-新闻列表视图和新闻细节视图分页-免费!!设置虚拟环境我们将用virtualenv和virtualenvwrapper来建立一个虚拟开发环境。首先请确认你已经安装了它们:mkvirt
系统 2019-09-27 17:49:13 2081
1.1安装模块pipinstallpykafka1.2基本使用#-*coding:utf8*-frompykafkaimportKafkaClienthost='IP:9092,IP:9092,IP:9092'client=KafkaClient(hosts=host)#生产者topicdocu=client.topics['my-topic']producer=topicdocu.get_producer()foriinrange(100):printi
系统 2019-09-27 17:48:56 2081
一.字符串的写法1.单引号或双引号二.字符串是不会变的1.字符串不会变,只会新增后再赋值a='ABC'b=aa='XYZ'print(b)结果还是ABC三.字符串的拼接1.用加号+2.字符串不能与数字类型相加,需要使用内置函数str()将数字类型转换成字符串类型再拼接四.字符串的常用方法1.title()将字符串里面的英文单词(空格隔开的叫一个单词)首字母变大写,其他字符不变2.upper()将字符串里面的所有英文字符变大写,其他字符不变3.lower()
系统 2019-09-27 17:48:26 2081
通过一个for循环,将一个一个字符追加到字符串中:方法一:string=''str=u"追加字符"foriinrange(len(str)):string+=str[i]printstring显示结果:追加字符方法二:string=[]str=u"1234"foriinrange(len(str)):string.append(str[i])printstring显示结果:[u'1',u'2',u'3',u'4']以上这篇python字符串追加实例就是小编
系统 2019-09-27 17:48:12 2081