Python

Python程序中的进程操作-进程间数据共享

目录一、进程之间的数据共享1.1Manager模块介绍1.2Manager例子一、进程之间的数据共享展望未来,基于消息传递的并发编程是大势所趋即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合,通过消息队列交换数据。这样极大地减少了对使用锁定和其他同步手段的需求,还可以扩展到分布式系统中。但进程间应该尽量避免通信,即便需要通信,也应该选择进程安全的工具来避免加锁带来的问题。以后我们会尝试使用数据库来解决现在进程之间的数据共享问题。1.1Manage

系统 2019-09-27 17:49:06 2314

Python

Python使用LDAP做用户认证的方法

LDAP(LightDirectoryAccessPortocol)是轻量目录访问协议,基于X.500标准,支持TCP/IP。LDAP目录以树状的层次结构来存储数据。每个目录记录都有标识名(DistinguishedName,简称DN),用来读取单个记录,一般是这样的:cn=username,ou=people,dc=test,dc=com几个关键字的含义如下:basedn:LDAP目录树的最顶部,也就是树的根,是上面的dc=test,dc=com部分,一

系统 2019-09-27 17:47:14 2314

Python

Python程序中的线程操作-锁

目录一、同步锁1.1多个线程抢占资源的情况1.1.1对公共数据的操作1.2同步锁的引用1.3互斥锁与join的区别二、死锁与递归锁2.1死锁2.2递归锁RLock三、典型问题:科学家吃面3.1死锁问题3.2递归锁解决死锁问题一、同步锁1.1多个线程抢占资源的情况fromthreadingimportThreadimportos,timedefwork():globalntemp=ntime.sleep(0.1)n=temp-1if__name__=='__

系统 2019-09-27 17:47:06 2314

Python

Python的Tornado框架的异步任务与AsyncHTTPClient

高性能服务器TornadoPython的web框架名目繁多,各有千秋。正如光荣属于希腊,伟大属于罗马。Python的优雅结合WSGI的设计,让web框架接口实现千秋一统。WSGI把应用(Application)和服务器(Server)结合起来。Django和Flask都可以结合gunicon搭建部署应用。与django和flask不一样,tornado既可以是wsgi应用,也可以是wsgi服务。当然,选择tornado更多的考量源于其单进程单线程异步IO的

系统 2019-09-27 17:38:14 2314

Python

Python基于twisted实现简单的web服务器

本文实例讲述了Python基于twisted实现简单的web服务器,分享给大家供大家参考。具体方法如下:1.新建htm文件夹,在这个文件夹中放入显示的网页文件2.在htm文件夹的同级目录下,建立web.py,web.py的内容为:fromtwisted.web.resourceimportResourcefromtwisted.webimportserverfromtwisted.webimportstaticfromtwisted.internetimp

系统 2019-09-27 17:55:56 2313

Python

Python 之父撰文回忆:为什么要创造 pgen 解析器?

花下猫语:近日,Python之父在Medium上开通了博客,并发布了一篇关于PEG解析器的文章(参见我翻的全文译文)。据我所知,他有自己的博客,为什么还会跑去Medium上写文呢?好奇之下,我就打开了他的老博客。最后一篇文章写于2018年5月,好巧不巧,写的竟是pgen解析器,正是他在新文中无情地吐槽的、说将要替换掉的pgen。在这篇旧文里,Guido回忆了他创造pgen时的一些考量,在当时看来,创造一个新的解析器无疑是明智的,只不过时过境迁,现在有了更好

系统 2019-09-27 17:55:03 2313

Python

python-pyinstaller、打包后获取路径的实例

使用pyinstaller可以把.py文件打包为.exe可执行文件,命令为:pyinstallerhello.py打包后有两个文件夹,一个是dist,另外一个是build,可执行文件在dist文件夹里面,但是会有许多依赖是独立文件存在pyinstaller-Fhello.py使用-F参数后,打包的可执行文件是一个整体,只有一个.exe文件。获取文件路径的方式有四种,可以在打包成exe文件后,获取.exe文件的当前路径importsysimportospri

系统 2019-09-27 17:54:31 2313

Python

python3.7安装pygame

经过各种找,下面这个安装地址中的版本是最全的下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame本机python版本然后在下载地址(https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame)找到cp37版本(这里的37就是3.7的意思)第一次:下载了【pygame-1.9.6-cp37-cp37m-win_amd64.whl】。结果安装的时候报错:【ERR

系统 2019-09-27 17:54:16 2313

Python

python爬取京东商品评论--jsonpath方法

直接送上代码importurllib.requestimportjsonimportjsonpathimporttimeend_page=int(input('请输入爬取的结束页码:'))foriinrange(0,end_page+1):print('第%s页开始爬取------'%(i+1))url='https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_c

系统 2019-09-27 17:54:07 2313

Python

Python 2.x 即将终止更新和技术支持,是时候和它讲再见了

Python2的报废(EOL)日期迟迟未到,不过现在终于有了眉目。自2020年1月1日起,Python2将不再得到支持。Python的核心开发人员将不再提供错误修复版或安全更新。因此,如果你仍在使用Python2.x,是时候将代码移植到Python3了。如果你继续使用未得到支持的模块,可能危及贵企业及数据的安全性,因为无人修复的漏洞迟早会出现。问题的严重性下面这张表列出了十个流行的Python软件包及统计数据,来自Python社区开发和共享的软件的存储中心

系统 2019-09-27 17:54:02 2313

Python

python读写csv文件并增加行列的实例代码

python读写csv文件并增加行列,具体代码如下所示:#-*-coding:utf-8-*-"""CreatedonThuAug1711:28:172017@author:ShawnYuen"""importcsvd=list(range(38685))withopen('./kinetics_test.csv')asf1:f_csv=csv.DictReader(f1)fori,rowinenumerate(f_csv):#print(row)key1

系统 2019-09-27 17:52:37 2313

Python

python爬取Ajax动态加载网页过程解析

常见的反爬机制及处理方式1、Headers反爬虫:Cookie、Referer、User-Agent解决方案:通过F12获取headers,传给requests.get()方法2、IP限制:网站根据IP地址访问频率进行反爬,短时间内进制IP访问解决方案:1、构造自己IP代理池,每次访问随机选择代理,经常更新代理池2、购买开放代理或私密代理IP3、降低爬取的速度3、User-Agent限制:类似于IP限制解决方案:构造自己的User-Agent池,每次访问随

系统 2019-09-27 17:51:32 2313

Python

Python编写通讯录通过数据库存储实现模糊查询功能

1.要求数据库存储通讯录,要求按姓名/电话号码查询,查询条件只有一个输入入口,自动识别输入的是姓名还是号码,允许模糊查询。2.实现功能可通过输入指令进行操作。(1)首先输入“add”,可以对通讯录进行添加联系人信息。sql1='insertintoTA(ID,NAME,AGE,ADDRESS,TELENUMBER)'sql1+='values("%d","%s","%d","%s","%s");'%(ID,name,age,address,telenumb

系统 2019-09-27 17:49:30 2313

Python

Python中列表元素的操作(追加、插入、删除、赋值、排序、拷贝)

一、列表元素的追加和插入append():追加一个元素到列表extend():列表拉伸,追加多个元素到列表insert():在指定索引处插入元素二、列表元素的删除pop(a):弹出列表中索引为a的元素,默认为列表最后一个元素pop()弹出的值可用变量接收remove():删除列表元素del:从内存种删除一个元素三、列表元素的重新赋值1、通过索引,重新赋值2、通过切片赋值四、列表元素的排序x.sort()#列表排序,默认按照ascii排序x.sort(rev

系统 2019-09-27 17:48:02 2313

Python

python实现定制交互式命令行的方法

Python的交互式命令行可通过启动文件来配置。当Python启动时,会查找环境变量PYTHONSTARTUP,并且执行该变量中所指定文件里的程序代码。该指定文件名称以及地址可以是随意的。按Tab键时会自动补全内容和命令历史。这对命令行的有效增强,而这些工具则是基于readline模块实现的(这需要readline程序库辅助实现)。此处为大家举一个简单的启动脚本文件例子,它为python命令行添加了按键自动补全内容和历史命令功能。[python@pytho

系统 2019-09-27 17:48:02 2313