South——完美替代django比较鸡肋的syncdb

By Calabash 使用South之前铭记:请你一定要相信他的能力,抛弃对他的不信任感。因为South给人的第一印象就是好像每个操作都在抛异常。 South概述 * 针对django自带的syncdb同步models和数据库的缺陷开发的数据迁移工具,可以作为syncdb的替代,South能够检测对models的更改并同步到数据库. South基本用法 * 安装完South之后,要在django项目中使用South,先要将South作为一个App导入项目,所以设置INSTALL_APP添加south * 第一次使用South(对于已存在的项目转用South见下一步的介...
2010-07-03 22:20 | 阅读 4945 次 | 评论 1 条

Python实现查找指定文件夹内指定时间之后修改过的文件

保存下来,以后说不定用的到 #!/usr/bin/python# -*- coding: UTF-8 -*-import osimport timeimport datetimetime1 = '2010-4-1 12:33' #指定时间root1 = 'D:\\WWW' #指定文件夹def txt_2_time(txt): l = txt.replace(' ','-').replace(':','-').split('-') l = map(int,l) s = datetime.datetime(*l) t = time.mktime...
2010-06-09 13:24 | 阅读 5785 次 | 评论 0 条

Python实现九九乘法表

常规版(最容易理解): for i in range(1,10): for j in range(1,i+1): print '%d*%d=%d' %(i,j,i*j), print 函数式版: for i in range(1,10): print ''.join(map(lambda x:'%d*%d=%d' %(x,i,i*x), range(1,i+1))) 号称最简版(看似仅有一行,其实把简单的问题搞的贼复杂了,不建议这种方式): print '\n'.join([ ' '.join([ "%d*%d=%2s"...
2010-06-01 18:02 | 阅读 7213 次 | 评论 3 条

Python抓取页面中超链接(URL)的3中方法比较(HTMLParser、pyquery、正则表达式)

HTMLParser版: #!/usr/bin/python# -*- coding: UTF-8 -*-import HTMLParserclass UrlParser(HTMLParser.HTMLParser): def __init__(self): HTMLParser.HTMLParser.__init__(self) self.urls = [] def handle_starttag(self, tag, attrs): if tag == 'a': for name,value in at...
2010-04-20 20:04 | 阅读 8797 次 | 评论 0 条

Python中将字符串列表转为数字列表的两种方法

用1000个元素的列表作实验,计算它们的执行时间 首先想到的是遍历列表然后转换元素类型,组成新的列表: #!/usr/bin/python# -*- coding: UTF-8 -*-from time import clock as nowtime1 = now()txt = '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53...
2010-04-17 18:39 | 阅读 15178 次 | 评论 0 条

用Python对字符串进行批量替换

txt = '123456789'd = {'1':'a', '2':'b', '3':'c', '4':'d', '5':'e', '6':'f', '7':'g', '8':'h', '9':'i', }for k in d: txt = txt.replace(k,d[k])print txt
2010-04-13 16:32 | 阅读 13984 次 | 评论 0 条

python实现全屏截图(win32)

#!/usr/bin/python# -*- coding: UTF-8 -*-import timeimport os, win32gui, win32ui, win32con, win32apidef window_capture(): hwnd = 0 hwndDC = win32gui.GetWindowDC(hwnd) mfcDC=win32ui.CreateDCFromHandle(hwndDC) saveDC=mfcDC.CreateCompatibleDC() saveBitMap = win32ui.CreateBitmap() ...
2010-04-10 22:14 | 阅读 7517 次 | 评论 1 条

深入理解Python中的yield

yield的英文单词意思是生产,刚接触Python的时候感到非常困惑,一直没弄明白yield的用法。只是粗略的知道yield可以用来为一个函数返回值塞数据,比如下面的例子: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->def addlist(alist): for i in alist: yield i + 1取出alist的每一项,然后把i + 1塞进去。然后通过调用取出每一项: Co...
2010-04-10 01:12 | 阅读 1953 次 | 评论 0 条

Python中用enumerate遍历列表

enumerate在遍历时可以返回元素的索引值,如:for i, v in enumerate(a):这对于某些需要索引值的情况非常方便。如打印序号,如果不用这个方法,我们遍历一般要写成:for i in range(len(a)): print i, a[i]而使用enumerate,可以写为:for i, v in enumerate(a): print i, v 摘自:http://www.zeuux.org/pipermail/zeuux-python/2006-June/026647.html
2010-04-09 23:14 | 阅读 3091 次 | 评论 0 条

python内置函数map/reduce/filter

python内置函数map/reduce/filter python有几个内置的函数很有意思:map/filter/reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是python列表方法的三架马车。 filter() 函数:filter函数的功能相当于过滤器。调用一个布尔函数bool_func来迭代遍历每个seq中的元素;返回一个使bool_seq返回值为true的元素的序列。 >>>a=[1,2,3,4,5,6,7]>>>b=filter(lambda x:x>5, a)>>>print b>>>[6,7]如果fi...
2010-04-09 01:56 | 阅读 2245 次 | 评论 1 条

python插入记录后取得主键id的方法(cursor.lastrowid和conn.insert_id())

#!/usr/bin/python# import MySQL moduleimport MySQLdb# get user inputname = raw_input("Please enter a name: ")# connectconn = MySQLdb.connect(host="localhost", user="nobody", passwd="nobody", conn="qestar", unix_socket="/tmp/mysql.sock")# create a cursorcursor = conn.cursor()# execute SQL statemen...
2010-04-07 13:01 | 阅读 9186 次 | 评论 0 条

MySQLdb for Python使用指南/Python的数据库操作

网站就是要和数据库进行交互,否则什么都不用做了...今天我们来看一个叫MySQLdb的库,这个用来和MySQL数据库进行交互. 可以从这里获得这个库 http://sourceforge.net/projects/mysql-python 如果你不确定你的python环境里有没有这个库,那就打开python shell,输入 import MySQLdb,如果返回错误信息,那就表示你的机器上没有,赶紧去下载一个.我的机器是win xp,所以我下载了win环境下的exe那个,直接双击完成安装. 在介绍具体的操作前,先花点时间来说说一个程序怎么和数据库进行交互 1.和数据库建立连接 2.执行...
2010-04-03 12:01 | 阅读 2169 次 | 评论 0 条

Python祛除列表中重复的元素

比较容易记忆的是用内置的set l1 = ['b','c','d','b','c','a','a']l2 = list(set(l1))print l2 还有一种据说速度更快的,没测试过两者的速度差别 l1 = ['b','c','d','b','c','a','a']l2 = {}.fromkeys(l1).keys()print l2 这两种都有个缺点,祛除重复元素后排序变了: ['a', 'c', 'b', 'd'] 如果想要保持他们原来的排序: 用list类的sort方法 l1 = ['b','c','d','b','c...
2010-04-02 16:46 | 阅读 2579 次 | 评论 0 条

python set 简单应用

set也是python里一个重要类型,有时候还是蛮好用的。详细文档和说明可以用help(set) 查看其说明和方法。 下面来点简单的小例子说明把。 >>> x = set('spam') >>> y = set(['h','a','m']) >>> x, y (set(['a', 'p', 's', 'm']), set(['a', 'h', 'm'])) 再来些小应用。 >>> x & y # 交集 set(['a', 'm']) >>> x | y # 并集 set(['a', 'p', 's', 'h', 'm']) >>> x - y # 差集 set(['p', 's'...
2010-04-02 16:15 | 阅读 1857 次 | 评论 0 条

python实现php的explode和implode

php的explode和implode很方便,python没有这两个函数,不过python有split和join 实现explode >>> str = 'a|b|c|d|e'>>> str.split("|")['a', 'b', 'c', 'd', 'e'] 实现implode >>> list = ['a', 'b', 'c', 'd', 'e']>>> "|".join(list)'a|b|c|d|e'
2010-04-02 15:47 | 阅读 17033 次 | 评论 1 条

Web.py中Sqlalchemy scoped_session的使用

Sqlalchemy中, 创建Session是一件比较耗资源的事情.在Web环境中, 我们需要以一种节省的方式使用, SA提供了一个对Session的包装, scoped_session, 以确保能共享一个Session.官方文档的描述 http://www.sqlalchemy.org/docs/05/session.html#unitofwork_contextual_creating 文档中并没有直接给出最佳实践. 我做了一点的google search后, 将代码改为: #sqlalchemyengine = create_engine('mysql://root:pa...
2010-03-29 18:40 | 阅读 5507 次 | 评论 1 条

安装setuptools模块不需要install参数

把这个安装脚本下载下来 :http://peak.telecommunity.com/dist/ez_setup.py 然后到这个脚本所在的目录,直接python ez_setup.py
2010-03-11 13:53 | 阅读 1872 次 | 评论 1 条

Python中的pprint和pformat简介

pprint模块中使用的格式化可以按照一种格式正确的显示数据, 这种格式即可被解析器解析, 又很易读. 输出保存在一个单行内, 但如果有必要, 在分割多行数据时也可使用缩进表示. import sysimport pprintpprint.pprint(sys.path) 运行结果: [ 'C:\\WINDOWS\\system32\\python26.zip', 'C:\\Python26\\DLLs', 'C:\\Python26\\lib', 'C:\\Python26\\lib\\plat-win', 'C:\\Python26\\lib\\lib-tk', 'C:\\...
2010-03-02 23:33 | 阅读 5924 次 | 评论 0 条

py常用模块简介

Tkinter———— Python默认的图形界面接口。   Tkinter是一个和Tk接口的Python模块,Tkinter库提供了对Tk API的接口,它属于Tcl/Tk的GUI工具组。Tcl/Tk是由John Ousterhout发展的书写和图形设备。Tcl(工具命令语言)是个宏语言,用于简化shell下复杂程序的开发,Tk工具包是和Tcl一起开发的,目的是为了简化用户接口的设计过程。Tk工具包由许多不同的小部件,如一个按钮、一个滚动条等。通过Tk提供的这些小部件,我们就可快速地进行GUI开发。Perl、Scheme等语言也利用Tk库进行GUI开发。Tkinter是跨平台,在各种平...
2010-02-24 02:58 | 阅读 2172 次 | 评论 1 条
浏览2799969次
文章归档