详解Python序列化Serialize和反序列化Deserialize序列化(serialization)序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。序列化和反序列化的目的1、以某种存储形式使自定义对象持久化;2、将对象从一个地方传递到另一个地方。3、使程序更具维护性序列化由于存在于内存中的对象都是暂时的,无法长期驻存,为了把对象的状态保持下来,这时需要把对象
系统 2019-09-27 17:48:16 2208
rpclib是一个非常好用的pythonwebservice库,可以动态的生成wsdl,不过这个项目已经基本停止,并被一个新的项目取代spyne,由于旧的项目工作已经比较稳定,所以我没有贸然升级到spyne。我在rpclib编写service方法时,遇到一个奇怪的错误:访问wsdl(http://localhost:9898/?wsdl)页面,返回502BadGateway。在日志中看到如下错误信息:复制代码代码如下:ValueError:Allstrin
系统 2019-09-27 17:48:07 2208
python多线程效率在一台8核的CentOS上,用python2.7.6程序执行一段CPU密集型的程序。importtimedeffun(n):#CPU密集型的程序while(n>0):n-=1start_time=time.time()fun(10000000)print('{}s'.format(time.time()-start_time))#测量程序执行时间测量三次程序的执行时间,平均时间为0.968370994秒。这就是一个线程执行一次fun(
系统 2019-09-27 17:47:58 2208
很多书籍里面讲的Python备份都是在linux下的,而在xp上测试一下也可以执行备份功能,代码都差不多相同,就是到执行打包的时候是不一样的。而且要用到winrar,其他的压缩文件也是一样的。首先我们要把winrar的路径添加到path里面,这里添加完了要重启机子才有效。这里要注意:把winrar的路径添加到path里面之后一定要重启,否则path的设定不会起作用,打包就会失败!这里用到得命令是:winraraxxx.zipxxxxxxx为任意字符实例代码
系统 2019-09-27 17:47:53 2208
在python中有很多字符串连接方式,今天就在这里具体总结一下:①.最原始的字符串连接方式:str1+str2②.python新字符串连接语法:str1,str2③.奇怪的字符串方式:str1str2④.%连接字符串:‘name:%s;sex:'%('tom','male')⑤.字符串列表连接:str.join(some_list)下面具体分析一下:第一种,想必只要是有编程经验的人,估计都知道,直接用“+”来连接两个字符串:'Jim'+'Green'='J
系统 2019-09-27 17:46:32 2208
本文以一段简单的监听鼠标、键盘事件的程序,实现获取用户的输入(比如登录某些网站的账号、密码)的功能。经测试,对于一台“裸奔”的电脑,完全能获取到用户输入的任何信息;但是如果安装了杀毒软件,就够呛了。具体实现方法如下:一、代码部分:获取用户输入信息,并与截图一起保存到XX目录下#-*-coding:utf-8-*-#importpythoncomimportpyHookimporttimeimportsocketfromPILimportImageGrab#
系统 2019-09-27 17:46:23 2208
前言在iOS项目开发的过程中,如果版本迭代开发的时间比较长,那么在很多版本开发以后或者说有多人开发参与以后,工程中难免有一些垃圾资源,未被使用却占据着api包的大小!这里我通过Python脚本来查找项目中未被使用的图片、音频、视频资源,然后删除掉;以达到减小APP包大小的目的!代码先查找项目中所以的资源文件存到你数组里面defsearchAllResName(file_dir):global_resNameMapfs=os.listdir(file_dir
系统 2019-09-27 17:46:20 2208
listpython的列表内部实现是数组(具体实现要看解析器,CPython的实现),因此就有数组的特点。超过容量会增加更多的容量,set,get是O(1),但del,insert,in的性能是O(n)。具体的看下表,'n’是容器中当前的元素数,'k’需要操作的元素个数OperationAverageCaseAmortizedWorstCaseCopyO(n)O(n)Append[1]O(1)O(1)InsertO(n)O(n)GetItemO(1)O(1
系统 2019-09-27 17:45:52 2208
文章的主题不要使用可变对象作为函数的默认参数例如list,dict,因为def是一个可执行语句,只有def执行的时候才会计算默认默认参数的值,所以使用默认参数会造成函数执行的时候一直在使用同一个对象,引起bug。基本原理在Python源码中,我们使用def来定义函数或者方法。在其他语言中,类似的东西往往只是一一个语法声明关键字,但def却是一个可执行的指令。Python代码执行的时候先会使用compile将其编译成PyCodeObject.PyCodeOb
系统 2019-09-27 17:45:28 2208
一、列表(List)list是一个可以在其中存储一系列项目的数据结构。list的项目之间需用逗号分开,并用一对中括号括将所有的项目括起来,以表明这是一个list。下例用以展示list的一些基本操作:#定义一个list对象class_list:class_list=['Michael','Bob','Tracy']#获得一个class_list的长度print'classhave',len(class_list),'students'#访问class_lis
系统 2019-09-27 17:38:23 2208