摘要:mac下安装protocol buffer并用python解析 由于业务需要,项目中需要用到google的一种高效的可扩展的结构化数据存储方式protocol buffer(以下简称pb)。很多人可能对这个新东西不熟悉,大家都知道xml,json,确很少听过pb,下面我就粗劣总结一下pb在mac环...
阅读全文
摘要:Displaying ErrorsNow that we have a template for our form, let’s add error messages:<form method="POST" action="/login"> <div>{{ form.username.label }}: {{ form.username(class="css_class") }}</div> {% if form.username.errors %} <ul class="error
阅读全文
摘要:1,使用系统函数import()stringmodule = _import('string')2,使用imp 模块import impstringmodule = imp.loadmodule('string',*imp.findmodule('string'))3,使用execimportstring = "import string as stringmodule"exec importstringimport importlibimportlib是import的python实现1、获取模块对象m1 = importli
阅读全文
摘要:首先确保redis已经正常启动。安装 可以去pypi上找到redis的Python模块:http://pypi.python.org/pypi?%3Aaction=search&term=redis&submit=search 然后按照提示down下来redis-py-2.2.1.tar.gz 非常标准的解压: #tar xvzf redis-py-2.2.1.tar.gz 进入解压目录,进行Python模块的标准安装: python setup.py install运行 打开Python解释器:>>> import redis>>> r =
阅读全文
摘要:最近,我们老大要我写一个守护者程序,对服务器进程进行守护。如果服务器不幸挂掉了,守护者能即时的重启应用程序。上网Google了一下,发现Python有很几个模块都可以创建进程。最终我选择使用subprocess模块,因为在Python手册中有这样一段话: This module intends to replace several other, older modules and functions, such as: os.system、os.spawn*、os.popen*、popen2.*、commands.* subprocess被用来替换一些老的模块和函数,如:os.system..
阅读全文
摘要:Python装饰器学习(九步入门)这是在Python学习小组上介绍的内容,现学现卖、多练习是好的学习方式。第一步:最简单的函数,准备附加额外功能?12345678# -*- coding:gbk -*-'''示例1: 最简单的函数,表示调用了两次'''defmyfunc():print("myfunc() called.")myfunc()myfunc()第二步:使用装饰函数在函数执行前和执行后分别附加额外功能?123456789101112131415161718# -*- coding:gbk -*-''&
阅读全文
摘要:HTMLParser是python用来解析html的模块。它可以分析出html里面的标签、数据等等,是一种处理html的简便途径。HTMLParser采用的是一种事件驱动的模式,当HTMLParser找到一个特定的标记时,它会去调用一个用户定义的函数,以此来通知程序处理。它主要的用户回调函数的命名都是以handler_开头的,都是HTMLParser的成员函数。当我们使用时,就从HTMLParser派生出新的类,然后重新定义这几个以handler_开头的函数即可。这几个函数包括:handle_startendtag 处理开始标签和结束标签handle_starttag 处理开始标签,比如<
阅读全文
摘要:python simplejson模块的使用方法2011-05-04 09:27:01|分类:python|标签:simplejson|字号订阅python安装:easy_install simplejson导入模块:importsimplejsonasjson几个主要函数:dump,dumps,load,loads 带s跟不带s的区别是 带s的是对 字符串的处理,而不带 s的是对文件对像的处理。json化python字典数据:json.dumps(['foo',{'bar':('baz',None,1.0,2)}])'["fo
阅读全文
摘要:·filter()函数filter()函数包括两个参数,分别是function和list。该函数根据function参数返回的结果是否为真来过滤list参数中的项,最后返回一个新列表,如下例所示:>>>a=[1,2,3,4,5,6,7]>>>b=filter(lambda x:x>5, a)>>>print b>>>[6,7]如果filter参数值为None,就使用identity()函数,list参数中所有为假的元素都将被删除。如下所示:>>>a=[0,1,2,3,4,5,6,7]b=f
阅读全文
摘要:【转】 SVN 状态标识的详解夏季超值热卖:svn 是在提交前查看本地文本和版本库里面的文件的区别。返回值有许多种具体含义如下:L abc.c # svn已经在.svn目录锁定了abc.cM bar.c # bar.c的内容已经在本地修改过了M baz.c # baz.c属性有修改,但没有内容修改X 3rd_party # 这个目录是外部定义的一部分? foo.o # svn并没有管理foo.o! some_dir # svn管理这个,但它可能丢失或者不完整~ qux # 作为file/dir/link进行了版本控制,但类型已经改变...
阅读全文
摘要:Python代码操作描述s+r序列连接s*n,n*ss的n次拷贝,n为整数s%d字符串格式化(仅字符串)s[i]索引s[i:j]切片xins,xnotins从属关系forxins:迭代len(s)长度min(s)最小元素max(s)最大元素s[i]=x为s[i]重新赋值s[i:j]=r将列表片段重新赋值dels[i]删除列表中一个元素dels[i:j]删除列表中一个片段数值操作:Python代码x<<y左移x>>y右移x&y按位与x|y按位或x^y按位异或(exclusiveor)~x按位翻转x+y加x-y减x*y乘x/y常规除x//y地板除x**y乘方(xy)
阅读全文
摘要:Python 字符串方法详解本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息。在编程中,几乎90% 以上的代码都是关于整数或字符串操作,所以与整数一样,Python 的字符串实现也使用了许多拿优化技术,使得字符串的性能达到极致。与 C++ 标准库(STL)中的 std::string不同,python 字符串集合了许多字符串相关的算法,以方法成员的方式提供接口,使用起来非常方便。字符串方法大约有几十个,这些方法可以分为如下几类(根据 manuals 整理):类型方法注解填充center(w
阅读全文
摘要:python os.path模块os和os.path模块os.listdir(dirname):列出dirname下的目录和文件os.getcwd():获得当前工作目录os.curdir:返回但前目录('.')os.chdir(dirname):改变工作目录到dirnameos.path.isdir(name):判断name是不是一个目录,name不是目录就返回falseos.path.isfile(name):判断name是不是一个文件,不存在name也返回falseos.path.exists(name):判断是否存在文件或目录nameos.path.getsize(nam
阅读全文
摘要:python中下划线的用法 (2012-02-27 13:07:07)转载▼标签:杂谈分类:pythonPython 用下划线作为变量前缀和后缀指定特殊变量_xxx 不能用’from module import *’导入__xxx__ 系统定义名字__xxx 类中的私有变量名核心风格:避免用下划线作为变量名的开始。因 为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。一般来讲,变量名_xxx被看作是“私有 的”,在模块或类外不可以使用。当变量是私有的时候,用_xxx 来表示变量是很好的习惯。因为变量名__xxx__对Python 来说有特殊
阅读全文
摘要:上次学习过marshal模块用于序列化和反序列化,但marshal的功能比较薄弱,只支持部分内置数据类型的序列化/反序列化,对于用户自定义的类型就无能为力,同时marshal不支持自引用(递归引用)的对象的序列化。所以直接使用marshal来序列化/反序列化可能不是很方便。还好,python标准库提供了功能更加强大且更加安全的pickle和cPickle模块。 cPickle模块是使用C语言实现的,所以在运行效率上比pickle要高。但是cPickle模块中定义的类型不能被继承(其实大多数时候,我们不需要从这些类型中继承。)。cPickle和pickle的序列化/反序列化规则是一样的,我们可.
阅读全文
摘要:定义:zip([iterable, ...])zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用*号操作符,可以将list unzip(解压),看下面的例子就明白了:123456789>>> a = [1,2,3]>>> b = [4,5,6]>>> c = [4,5,6,7,8]>>> zipped = zip(a,b)[(1
阅读全文
摘要:python的列表list可以用for循环进行遍历,实际开发中发现一个问题,就是遍历的时候删除会出错,例如l = [1,2,3,4]for i in l: if i != 4: l.remove(i)print l这几句话本来意图是想清空列表l,只留元素4,但是实际跑起来并不是那个结果。再看下面,利用index来遍历删除列表ll = [1, 2, 3, 4]for i in range(len(l)): if l[i] == 4: del l[i]print l这样没问题,可以遍历删除,但是列表l如果变为 l = [1,2,3,4,5]如果还是按照上面的方法,设想一下,range开始的范围..
阅读全文
摘要:python数组的使用python数组的使用2010-07-28 17:171、Python的数组分三种类型: (1) list 普通的链表,初始化后可以通过特定方法动态增加元素。 定义方式:arr = [元素] (2) Tuple 固定的数组,一旦定义后,其元素个数是不能再改变的。 定义方式:arr = (元素) (2) Dictionary 词典类型, 即是Hash数组。 定义方式:arr = {元素k:v} 2、下面具体说明这些数组的使用方法和技巧: (1) list 链表数组 a、定义时初始化 a = [1,2,[1,2,3]] b、定义时不初始化 一维数组: arr = [...
阅读全文
摘要:Pythonprint函数用法,print 格式化输出使用print输出各型的字符串整数浮点数出度及精度控制strHello = 'Hello Python' print strHello#输出结果:Hello Python#直接出字符串1.格式化输出整数pythonprint也支持参数格式化,与C言的printf似,strHello = "the length of (%s) is %d" %('Hello World',len('Hello World'))print strHello#输出果:the length of
阅读全文
摘要:python datetimePython提供了多个内置模块用于操作日期时间,像calendar,time,datetime。time模块我在之前的文章已经有所介绍,它提供的接口与C标准库time.h基本一致。相比于time模块,datetime模块的接口则更直观、更容易调用。今天就来讲讲datetime模块。 datetime模块定义了两个常量:datetime.MINYEAR和datetime.MAXYEAR,分别表示datetime所能表示的最小、最大年份。其中,MINYEAR = 1,MAXYEAR = 9999。(对于偶等玩家,这个范围已经足够用矣~~) datetime模块定义了下
阅读全文