随笔分类 -  Python

记录学习和使用python中遇到的问题
摘要:import datetime starttime = datetime.datetime.now() #long running endtime = datetime.datetime.now() print (endtime - starttime).seconds import time start = time.time() #run code end = time.time() print end-start 阅读全文
posted @ 2013-10-16 17:46 小郭学路 阅读(251) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html在没有reload(sys)之前调用sys.setdefaultencoding("utf-8")出错>>> import sys>>> sys.getdefaultencoding()'ascii'>>> >>> sys.setdefaultencoding("utf-8")Traceback (most recent call last): Fil 阅读全文
posted @ 2013-10-16 10:41 小郭学路 阅读(233) 评论(0) 推荐(0) 编辑
摘要:file通常建议使用open()打开文件,file用于类型判断如果要把数据写到磁盘上,除调用flush()外,还得用sync(),以确保数据从系统缓冲区同步到磁盘。close()总是会调用这两个方法。打开模式:*r:只读*w:只写。已存在文件将被清除*a:添加。总是添加到文件尾部*b:二进制模式*r+:更新文件,可读写,不会截断文件*w+:更新文件,可读写,清除原有内容*a+:更新文件,可读写,总是在尾部添加后面三种模式之前没有使用过。文件对象还实现迭代器协议,可直接循环获取其内容:>>> f = open("test.txt","r" 阅读全文
posted @ 2013-10-15 21:27 小郭学路 阅读(518) 评论(0) 推荐(0) 编辑
摘要:random伪随机数生成模块。如果不提供seed,默认使用系统时间。使用相同seed,可获得相同的随机数序列,常用于测试。>>> from random import *>>> >>> a = Random();a.seed(1)>>> >>> a>>> [a.randint(1,100) for i in range(20)] #生成20个[1,100]以内的随机数[14, 85, 77, 26, 50, 45, 66, 79, 10, 3, 84, 44, 77, 1, 45, 73 阅读全文
posted @ 2013-10-15 20:52 小郭学路 阅读(372) 评论(0) 推荐(0) 编辑
摘要:bisect>>> import bisect>>> >>> b = [ 20, 34, 35, 65, 78 ]>>> >>> bisect.bisect(b,25) #查找25在列表中的合适插入位置1>>> >>> b[20, 34, 35, 65, 78]>>> >>> bisect.bisect_left(b,35) #如果待查找元素在列表中存在,则返回左侧插入位置2>>> >>> bise 阅读全文
posted @ 2013-10-15 11:53 小郭学路 阅读(807) 评论(0) 推荐(0) 编辑
摘要:StringIO:提供类文件接口的字符串缓冲区,可选用性能更好的cStringIO版本:http://docs.python.org/2.7/library/stringio.html#module-cStringIOstructhttp://docs.python.org/2.7/library/struct.html#module-structstruct看上去有点像format,区别是它输出的是二进制字节序列。可以通过格式化参数,指定类型、长度、字节序(大小端)、内存对齐等 阅读全文
posted @ 2013-10-14 21:22 小郭学路 阅读(361) 评论(0) 推荐(0) 编辑
摘要:13、编译的标志可以用re.I、re.M等参数,也可以直接在表达式中添加"?(iLmsux)"标志*s:单行,“.”匹配包括换行符在内的所有字符*i:忽略大小写*L:让"\w"能匹配当地字符,貌似对中文支持不好*m:多行*x:忽略多余的空白字符,让表达式更易阅读*u:Unicode例子:>>> re... 阅读全文
posted @ 2013-10-14 21:16 小郭学路 阅读(333) 评论(0) 推荐(0) 编辑
摘要:类型对象负责创建对象实例,控制对象行为。那么类型对象又由谁来创建呢?元类(metaclass)——类型的类型New-Style Class的默认类型是type>>> class Data(object):... pass... >>> >>> Data.__class__>>> >>> type.__class__#最终的类型是type,包括type自己关键字class会被编译成元类创建类型对象指令>>> Data = type("Data",(object),{&q 阅读全文
posted @ 2013-10-14 14:26 小郭学路 阅读(560) 评论(0) 推荐(0) 编辑
摘要:__new__:创建对象时调用,会返回当前对象的一个实例__init__:创建完对象后调用,对当前对象的一些实例初始化,无返回值1、在类中,如果__new__和__init__同时存在,会优先调用__new__>>> class Data(object):... def __new__(self):... print "new"... def __init__(self):... print "init"... >>> data = Data()new2、__new__方法会返回所构造的对象,__init__则不会。_ 阅读全文
posted @ 2013-10-14 14:08 小郭学路 阅读(6294) 评论(1) 推荐(1) 编辑
摘要:http://www.cnblogs.com/coser/archive/2013/01/28/2880328.html上下文管理协议为代码块提供包含初始化和清理操作的上下文环境。即便代码块发生异常,清理操作也会被执行。Context对象*__enter__:初始化环境,返回上下文对象*__exit... 阅读全文
posted @ 2013-10-11 14:16 小郭学路 阅读(715) 评论(0) 推荐(0) 编辑
摘要:1、概述闭包是在其词法上下文中引用自由变量的函数。>>> def foo():... m=3... n=5... def bar():... a=4... return m+n+a... return bar... >>> foo()>>> bar=foo()>>> bar()12说明:bar在foo函数的代码块中定义。bar是foo的内部函数。在bar的局部作用域中可以直接访问foo局部作用域中定义的m、n变量。这种内部函数可以使用外部函数变量的行为就叫闭包。python中闭包表示内部函数,由一个变量指代,而这个变量对于 阅读全文
posted @ 2013-10-10 18:29 小郭学路 阅读(301) 评论(0) 推荐(0) 编辑
摘要:正则表达式可以帮助我们更好的描述复制的文本格式,可以更好地利用它们对文本数据进行检索、替换、提取和修改操作。http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.htmlhttp://docs.python.org/2.7/library/re... 阅读全文
posted @ 2013-09-27 15:36 小郭学路 阅读(3655) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/dkblog/archive/2011/03/07/1980636.html1、超时处理#!/usr/bin/env python2.7#-*- coding:utf8 -*-import signaldef handler(signum,frame): print 'Signal handler called with signal',signum raise TimeOutError,"TimeOut!"try: signal.signal(signal.SIGALRM,handler) ... 阅读全文
posted @ 2013-09-27 10:32 小郭学路 阅读(319) 评论(0) 推荐(0) 编辑
摘要:该文介绍的比较好:http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.htmlhttp://www.codecho.com/understanding-python-decorators/http://blog.csdn.net/thy38/... 阅读全文
posted @ 2013-09-26 14:58 小郭学路 阅读(267) 评论(0) 推荐(0) 编辑
摘要:http://docs.python.org/2/library/configparser.htmlhttp://www.cnblogs.com/sislcb/archive/2008/11/25/1340587.htmlConfigParser模块对应配置文件:[db]db_host = 127.0.0.1db_port = 3307db_user = rootdb_pass = passworddb_none[concurrent]thread = 10processor = 20配置解析代码:#!/usr/bin/env python2.7#-*- coding:utf8 -*-impo 阅读全文
posted @ 2013-09-25 20:03 小郭学路 阅读(492) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/vamei/archive/2012/09/23/2698014.htmlhttp://blog.csdn.net/jgood/article/details/4498166http://docs.python.org/library/subprocesssubprocess.call()[root@typhoeus79 20130925]# more test.py #!/usr/bin/env python2.7#-*- coding:utf8 -*-import subprocessrc = subprocess.call(["ls 阅读全文
posted @ 2013-09-25 11:17 小郭学路 阅读(460) 评论(0) 推荐(0) 编辑
摘要:#!/usr/bin/env python2.7#-*- coding:utf8 -*-import osimport sysimport loggingimport MySQLdbfrom log import Loggerlogger=Logger("../log/",logging.DEBUG,"mysql_base.log")class MySQLBase(object): """MySQLBase""" def __init__(self,host,port,user,passwd,d 阅读全文
posted @ 2013-09-24 20:47 小郭学路 阅读(410) 评论(0) 推荐(0) 编辑
摘要:回调函数是实现异步操作的常用手法1、callback版本的示例,其中framework调用logic,在完成某些操作或者接收到信号后,用callback返回异步结果#!/usr/bin/env python2.7def framework(logic,callback): s=logic() print "[FX] logic:",s print "[FX] do something..." for i in xrange(1000000): a=i+1 callback("async:"+s)... 阅读全文
posted @ 2013-09-24 11:40 小郭学路 阅读(1808) 评论(0) 推荐(0) 编辑
摘要:#!/usr/bin/env python26#-*- coding:utf8 -*-import tornado.httpserverimport tornado.ioloopimport tornado.optionsimport tornado.webimport os.pathfrom tornado.options import define,optionsdefine("port",default=8001,help="run on this port",type=int)class TestHandler(tornado.web.Reque 阅读全文
posted @ 2013-09-17 20:52 小郭学路 阅读(286) 评论(0) 推荐(0) 编辑
摘要:#!/usr/bin/env python26#-*- coding:utf8 -*-import tornado.httpserverimport tornado.ioloopimport tornado.optionsimport tornado.webfrom tornado.options ... 阅读全文
posted @ 2013-09-17 20:23 小郭学路 阅读(422) 评论(0) 推荐(0) 编辑