ProtocolBuffers(类似XML的一种数据描述语言)最新版本2.3里,protoc―py_out命令只生成原生的Python代码。尽管PB(ProtocolBuffers)可以为C++语言生成快速解析和序列化代码,但是这种方式对于Python不适用,并且手动生成的已包装的代码需要非常大的维护工作。在讨论组里,这是一个常见的功能要求,由于一个必备的客户端组件―AppEngine(根据团队介绍名称为AppEngine),生成原生的Python代码有更
系统 2019-09-27 17:49:21 2194
先说说线程在多线程中,为了保证共享资源的正确性,我们常常会用到线程同步技术.将一些敏感操作变成原子操作,保证同一时刻多个线程中只有一个线程在执行这个原子操作。我最常用的是互斥锁,也称独占锁。其次还有读写锁,信号量,条件变量等。除此之外,我们在进程间通信时会用到信号,向某一个进程发送信号,该进程中设置信号处理函数,然后当该进程收到信号时,执行某些操作。其实在线程中,也可以接受信号,利用这种机制,我们也可以用来实现线程同步。更多信息见//www.jb51.ne
系统 2019-09-27 17:48:40 2194
今天给喜欢看电影的同学推荐一款Python制作的搜索电影片源的工具。经常在网上搜索片源的同学应该知道,各大片源网站广告不断,有些网站,点一下查询就弹出广告,关掉广告后再点查询,片源信息才显示正常。今天这款工具搜索是基于Python的GUI库PyQt5开发的。下载项目我们命令行下用git命令先把项目从github上克隆下来。gitclonehttps://github.com/lt94/MovieHeavens.git如果没有安装git的话也可以直接下载下来
系统 2019-09-27 17:48:39 2194
什么是python描述符:类里面有__get__或__set__或__del__的就叫描述符属性查找优先级类属性数据描述符(同时实现__get__和__set__)实例属性非数据描述符(只实现__get__)__getattr__通过代理和描述符实现属性懒加载这里是使用装饰器的方式实现的懒加载。可以将耗时的操作放到方法里面。在未使用的时候是一个方法,当第一次使用过后就会替换掉方法,并为之设置属性值。注意,只有在使用的时候才会执行函数里面的代码,并且只执行一
系统 2019-09-27 17:47:51 2194
0x00marshalmarshal使用的是与Python语言相关但与机器无关的二进制来读写Python对象的。这种二进制的格式也跟Python语言的版本相关,marshal序列化的格式对不同的版本的Python是不兼容的。marshal一般用于Python内部对象的序列化。一般地包括:基本类型booleans,integers,floatingpointnumbers,complexnumbers序列集合类型strings,bytes,bytearray
系统 2019-09-27 17:47:22 2194
阅读目录tcp协议:流式协议(以数据流的形式通信传输)、安全协议(收发信息都需收到确认信息才能完成收发,是一种双向通道的通信)tcp协议在OSI七层协议中属于传输层,它上承用户层的数据收发,下启网络层、数据链路层、物理层。可以说很多安全数据的传输通信都是基于tcp协议进行的。为了让tcp通信更加方便需要引入一个socket模块(将网络层、数据链路层、物理层封装的模块),我们只要调用模块中的相关接口就能实现传输层下面的繁琐操作。简单的tcp协议通信模板:(需
系统 2019-09-27 17:47:19 2194
AES(英文:AdvancedEncryptionStandard,中文:高级加密标准),是一种区块加密标准。AES将原始数据分成多个4×4字节矩阵来处理,通过预先定义的密钥对每个字节矩阵中的每个字节进行异或、替换、移位以及线性变换操作来达到加密的目的。密钥长度可以是128,192或256比特。下面是一个利用PythonM2Crypto库,并使用aes_128_ecb算法进行加密和解密的例子。首先介绍一下几个关键的点:1、iv(Initialization
系统 2019-09-27 17:47:10 2194
学过Python的人应该都知道,Python是支持多线程的,并且是native的线程。本文主要是通过thread和threading这两个模块来实现多线程的。python的thread模块是比较底层的模块,python的threading模块是对thread做了一些包装的,可以更加方便的被使用。这里需要提一下的是python对线程的支持还不够完善,不能利用多CPU,但是下个版本的python中已经考虑改进这点,让我们拭目以待吧。threading模块里面主
系统 2019-09-27 17:46:35 2194
本文以一段简单的监听鼠标、键盘事件的程序,实现获取用户的输入(比如登录某些网站的账号、密码)的功能。经测试,对于一台“裸奔”的电脑,完全能获取到用户输入的任何信息;但是如果安装了杀毒软件,就够呛了。具体实现方法如下:一、代码部分:获取用户输入信息,并与截图一起保存到XX目录下#-*-coding:utf-8-*-#importpythoncomimportpyHookimporttimeimportsocketfromPILimportImageGrab#
系统 2019-09-27 17:46:23 2194
importrequestsimportjson#爬虫原理模拟浏览器获取请求数据#点击播放连接#url="https://www.ximalaya.com/revision/play/album?albumId=297790&pageNum=1&sort=1&pageSize=30"url="https://www.ximalaya.com/revision/play/album?albumId=333001&pageNum=1&sort=1&pageSi
系统 2019-09-27 17:45:43 2194