学以致用

focus on Python , C++, and some interest in Go and R

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  python相关

上一页 1 2 3 4 下一页

主要包括python各种库的使用
摘要:PyCoder推荐的一篇文章个人感觉对于python开发人员,不管是初学者还是成手来说都有一定的参考价值。好文章不敢独享,以期更多人能够看到。原文地址如下:http://docs.python-guide.org/en/latest/index.html 阅读全文
posted @ 2012-04-23 10:04 Jerry.Kwan 阅读(409) 评论(0) 推荐(0)

摘要:A Guide to Python's Magic Methods主要包括一些 attributeaccess,reflection, context manager,pickling等转载自 http://www.rafekettler.com/magicmethods.html 阅读全文
posted @ 2012-03-26 11:34 Jerry.Kwan 阅读(268) 评论(0) 推荐(0)

摘要:最近在做一个权限系统,期望的效果如下:权限部分是一个二级结构, contenttype.action假定对外暴露的接口为 perms 变量,期望能通过 if perms.contentname 来判断用户是否拥有contentname中的任一action的权限,通过 if perms.contentname.actionname来判断用户是否具有contentname下的actionname权限。为了方便用户使用,决定使用python的操作符重载。具体代码如下:class PermLookupDict(object): def __init__(self, datas, content_... 阅读全文
posted @ 2012-03-26 11:31 Jerry.Kwan 阅读(486) 评论(0) 推荐(0)

摘要:常见的一个问题就是如何向PySide/PyQt的slot中传递额外的参数。slot的机理就是将signal和slot建立关联,signal的参数能够传递到slot中,但额外的参数(用户自定义的)并不能直接传递进去。但现实中传递用户自定义的参数还是很有意义的,这样一来用户就可以定义一个slot来处理多个signals,只是通过参数来区分即可。如果实现呢?一个简单的方法就是借助于lambda,下面是一个简单的例子:self.configInqAct = QtGui.QAction("Inquiry", self)self.configInqAct.setStatusTip(&q 阅读全文
posted @ 2012-03-22 16:04 Jerry.Kwan 阅读(1510) 评论(0) 推荐(0)

摘要:在通过python setup.py install 安装gevent后,使用gevent时提示如下错误:# python2.6Python 2.6.7 (r267:88850, Sep 6 2011, 08:13:16) [GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> import geventTra 阅读全文
posted @ 2012-03-08 14:01 Jerry.Kwan 阅读(1820) 评论(1) 推荐(0)

摘要:在使用web.py进行开发的时候避免不了会在template中使用$code来定义一些小函数,按照web.py的文档来看,$code之内能包含任意的python代码,但在实际使用的时候却经常发现不是这个样子的,只有特定的函数可以在$code中出现,比如说默认情况下在template中可以使用 len 函数,但却不能使用 str,为什么?仔细分析web.py的源码可以发下:所有有关template处理的都包含在template.py文件中。调用template最终会调用到BaseTemplate 的_compile方法,其中_compile的实现细节为def _compile(self, cod 阅读全文
posted @ 2012-03-06 14:17 Jerry.Kwan 阅读(1005) 评论(0) 推荐(0)

摘要:在webpy的整个framework中,我觉得最不合理也最失败的就属这个web.database的封装了。就我本人的理解,webpy对database的封装不说应该做到Django或者SQLAlchemy的水平,至少应该保持接口一致吧,但我们的webpy是什么样子呢?举个简单的例子,初始化一个database:对于sqlite是这样的:db = web.database(dbn = "sqlite", db = "./db.sqlite")但对于postgresql却是另外一个样子:db = web.database(dbn='postgres& 阅读全文
posted @ 2012-03-02 17:01 Jerry.Kwan 阅读(1897) 评论(1) 推荐(0)

摘要:在使用webpy的session时经常会发现按照文档是说明构造的session用法却总是出错,和预想差异很大。通过跟踪webpy源码发现原来默认情况下webpy在session这块儿做了很多手脚。举例如下:(1)session不能在debug模式中使用(2)session不能在webpy内置的wsgi server中使用究其原因是因为webpy在debug或者内置wsgi server中使用的时候启用了模块级的reload,reloader 加载了主模块零次,一次是作为__main__被加载,一次是作为真正的文件被加载,这样就导致了程序中使用的session不是同一个。通过查看webpy源码中 阅读全文
posted @ 2012-03-02 16:27 Jerry.Kwan 阅读(1144) 评论(0) 推荐(0)

摘要:在使用webpy时发现的web.application reload的猫腻,暂时记录下来,以便自己和他人参考。现象是这样的: 在配置文件中定义urls:urls = ( # front page "/", "app.controllers.base.index", "/index/", "app.controllers.base.index", ) 同时为了隐藏部分url对应关系,在程序中增加url映射关系如下:self._app.add_mapping(url_login, Login)sel... 阅读全文
posted @ 2012-03-02 16:14 Jerry.Kwan 阅读(1131) 评论(0) 推荐(0)

摘要:http://www.lfd.uci.edu/~gohlke/pythonlibs/针对windows版的python lib大合集 阅读全文
posted @ 2012-02-03 11:17 Jerry.Kwan 阅读(1156) 评论(0) 推荐(0)

摘要:为了调试方便,特意将python的logging模块封装了一下,支持同时向console和file输出,支持日志文件回滚。(1)myloggingconfig.pyView Code # -*- coding: utf-8 -*-'''Created on 2011-8-24主要用途: 对程序中所使用的loggong模式做一般性配置@author: JerryKwan'''import loggingimport logging.handlersimport osLEVELS = {'NOSET': logging.NOTSET, 阅读全文
posted @ 2012-02-01 13:39 Jerry.Kwan 阅读(1740) 评论(0) 推荐(0)

摘要:项目中碰到了这么一个需求:有一个record文件,每行一个item,整个文件大小在2G左右。根据要求,需要每天向其他系统提供100000个item,怎么处理比较好?考虑之后觉得分片的主意不错,先根据每片的item数对这个大文件进行分片,然后每天投放一片即可。具体python代码如下:View Code # -*- coding: utf-8 -*-import osimport sysimport shutilimport time# import linecacheimport hashlibimport zlibimport binasciiimport urllib2import log 阅读全文
posted @ 2012-02-01 13:30 Jerry.Kwan 阅读(1368) 评论(0) 推荐(0)

摘要:非法字符在xml中的存储一直比较讨厌,其实这个非法字符并不仅仅是非可见字符,还包括xml中规定的某些特殊字符,比如<&>等。一种比较方便的处理方式是将那些非法字符采用HEX方式存储或者base64加密后存储,以下是两个函数展示怎么采用base64加密的方式妥善处理那些非法字符,既保证数据的完整性,又能保持可读。毕竟所生成的xml不仅仅是用于机器读取,而且很大一部分还要对人阅读友好。其中的思路是:对于存在非法字符的字符串,统一使用base64加密,在生成的xml标签中增加base64=True属性,对于不存在非法字符的,直接显示原始数据,生成的标签中也不再添加base64属性 阅读全文
posted @ 2011-12-06 10:43 Jerry.Kwan 阅读(2578) 评论(0) 推荐(0)

摘要:随着国际化的需求越来越多,在考虑多语言的同时也不可避免的要涉及到多时区的问题。python中对多语言也就是I18N的支持要好很多,但在多时区的处理上就稍微差一些,python标准库中虽然在datetime提供了tzinfo ,但很可惜只是一个abstract class,用户需要自己实现tzinfo。要实现local timezone的话可以借助time模块的time.timezone来实现,但还是比较繁琐。很奇怪的是,python标准库中为何不提供一个local timezone?更令人费解的是python的datetime的strptime方法却不支持带时区的时间字符串的解析。就目前的情况 阅读全文
posted @ 2011-12-01 19:19 Jerry.Kwan 阅读(3482) 评论(0) 推荐(0)

摘要:通过python获取当前mac地址的方法如下:(1)通用方法,借助uuid模块def get_mac_address(): import uuid node = uuid.getnode() mac = uuid.UUID(int = node).hex[-12:] return mac(2)按照操作系统平台来def get_mac_address(): ''' @summary: return the MAC address of the computer ''' import sys import os mac = None if sys.p 阅读全文
posted @ 2011-11-30 16:56 Jerry.Kwan 阅读(15028) 评论(2) 推荐(0)

摘要:将CentOS下的python版本升级到python2.7,通过easy_install安装cherrypy没问题,但在使用cherrypy的时候却出错。import cherrypy时报出错误如下:Traceback(most recent call last): File"<stdin>", line 1,in<module> File"/usr/local/lib/python2.7/site-packages/cherrypy/__init__.py", line 62,in<module> from cher 阅读全文
posted @ 2011-11-03 14:21 Jerry.Kwan 阅读(2683) 评论(1) 推荐(1)

摘要:在使用python的lxml库时碰到了这样的问题:安装libxml2、libxml2-devel、 libxslt、 libxslt-devel都没有问题,安装lxml包也没有任何问题。执行 import lxml 也没有问题,但在执行 from lxml import etree时却出了问题。具体错误日志如下:ImportError: /home/soft/lxml/lxml-2.3/src/lxml/etree.so: undefined symbol: xmlSchematronSetValidStructuredErrors仔细分析之后发现,还是因为动态库路径的问题,也就是说etree 阅读全文
posted @ 2011-10-08 15:22 Jerry.Kwan 阅读(2301) 评论(0) 推荐(0)

摘要:对于耗时很长的web操作,可以采用Ajax来提供更好的性能以及用户体验。对于python的web框架来说怎么来做呢?将看到的一些资源记录如下,以方便后续查询使用。主要是采用pub/sub模式,也就是publish/subscribe,针对JQuery,可以采用PubNub Javascript Push API来做,具体资源地址如下:http://www.pubnub.com/blog/jquery-push-apipython下使用的库及使用方法如下:https://github.com/pubnub/pubnub-api/tree/master/python/如果是采用web.py开发的话 阅读全文
posted @ 2011-08-14 08:42 Jerry.Kwan 阅读(651) 评论(0) 推荐(0)

摘要:废话少说,直接书写详细搭建过程,以作记录。(1)安装Nginx1.1 下载nginx-1.0.5.tar.gz并解压1.2 ./configure (也可以增加--prefix= path指定安装路径)此时有可能会提示缺少pcre支持,如果要安装pcre的话可以通过 yum install pcre-devel 来实现安装1.3 make1.4 make install(2)安装uWSGI2.1 下载uwsgi-0.9.8.2.tar.gz并解压2.2 make在安装uWSGI的时候有可能提示说是libxml2不存在,针对此情况,建议通过 yum install libxml2-devel来解 阅读全文
posted @ 2011-07-20 15:13 Jerry.Kwan 阅读(5628) 评论(2) 推荐(0)

摘要:对于python IDE问题,相关的谈论已经很多很多,但就最近所经历的一些事情,决定再次谈起这一话题。编程,可以说只要有一个编辑器就可以,但要是讲究效率的话,就能显现出各个IDE的优劣。windows下WingIDE和Komodo不错,但可惜是商业版本,要付费。pyDev也挺好。还有一个Aptana,内置pyDev的,对于开发web方面效率挺高。在linux下,特别是通过ssl访问的时候,也许只有vi可以选择。对于开发大型的软件,还是建议使用一个IDE,效率也许更快一些。对于日常的大型开发而言,特别是涉及到web方面的python开发,个人建议还是使用Aptana。 阅读全文
posted @ 2011-06-30 20:29 Jerry.Kwan 阅读(485) 评论(0) 推荐(0)

上一页 1 2 3 4 下一页