python脚本
文章平均质量分 53
imzoer
Tencent mason
展开
-
Python-smallseg分词
#encoding=utf-8#import psyco#psyco.full()words = [x.rstrip() for x in open("main.dic",mode='r',encoding='utf-8') ]from smallseg import SEGseg = SEG()print('Load dict...')seg.set(words)print(原创 2013-09-29 21:15:30 · 2504 阅读 · 0 评论 -
Python中的异常-pybatis的准备阶段(四)
在写PyBatis的过程中,如果用户查询过程出现错误,那么要抛出异常。使用raise关键字即可:更多关于异常的知识可以参考这里原创 2013-03-06 20:38:43 · 902 阅读 · 0 评论 -
Python中动态导入模块-pybatis的准备阶段(七)
动态导入模块可以不必在文件开头使用import进行导入。可以在使用到的时候再进行导入并使用。__import__可以用来进行动态导入。但是下面的方法也可以:>>> del sysmod>>> sysmod.pathTraceback (innermost last): File "", line 1, in NameError: name 'sysmod' is not de原创 2013-03-08 10:55:38 · 1496 阅读 · 1 评论 -
Python接口与类继承学习-pybatis的准备阶段(九)
先说说py的继承。为了使用继承,我们把基本类的名称作为一个元组跟在定义类时的类名称之后。然后,我们注意到基本类的__init__方法专门使用self变量调用,这样我们就可以初始化对象的基本类部分。这一点十分重要——Python不会自动调用基本类的constructor,你得亲自专门调用它。'''Created on 2013-3-11@author: naughty'''cla原创 2013-03-11 10:46:53 · 4919 阅读 · 0 评论 -
Python中lambda表达式学习
lambda只是一个表达式,函数体比def简单很多。lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。如下例子:定义了一个lambda表达式,求三个数的和。再看一个例子:用lambda表达式求n的阶乘。-------------------原创 2013-03-13 10:51:33 · 198582 阅读 · 13 评论 -
Python工具-文件夹对比
文件夹对比,意思是说对比两个文件夹,看他们里面哪些文件是共有的,哪些是单独所有的。比如说这里对比d:/a文件夹和d:/b文件夹。最终输出共有的文件【对于共有的文件输出各自的最后修改时间】和单独拥有的文件。代码如下:#-*-coding:utf-8-*- #===============================================================原创 2013-03-14 21:04:18 · 4376 阅读 · 0 评论 -
Python中subprocess学习
生命不息奋斗不止!subprocess的目的就是启动一个新的进程并且与之通信。subprocess模块中只定义了一个类: Popen。可以使用Popen来创建进程,并与进程进行复杂的交互。它的构造函数如下:subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, pr原创 2013-03-15 14:53:53 · 132689 阅读 · 7 评论 -
Python processing学习
The processing.Process class follows the API of threading.Thread.上面是python doc的原话。安装processing模块的时候遇到找不到python.h这个文件的问题。网上搜了很多资料。都说是缺少python-dev。但是使用apt-get却一直提示缺少Python.h。我是这样解决的:1、安装aptiude原创 2013-03-21 14:35:47 · 10240 阅读 · 0 评论 -
Python中super关键字的作用
在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如代码段1:代码段1:class A:def __init__(self): print "enter A" print "leave A"class B(A):def __init__(self): print "enter B" A.__原创 2013-03-31 20:38:19 · 32906 阅读 · 0 评论 -
python shutil模块学习
shutil模块拷贝目录拷贝文件拷贝文件的时候,如果指定的文件目的位置之间有目录不存在,则会抛出错误。所以最好在拷贝之间确认目录存在。当目录存在的时候,拷贝文件就没有问题了。删除目录使用如下函数:shutil.rmtree('d:/dd')移动文件或者文件夹到另外一个地方:shutil.move('d:/c.png','e:/')----------原创 2013-03-28 20:02:07 · 17066 阅读 · 0 评论 -
使用Python的Supervisor来管理进程
Supervisor可以启动、停止、重启*nix系统中的程序。也可以重启崩溃的程序。supervisord的一个守护进程,用于将指定的进程当做子进程来运行。supervisorctl是一个客户端程序,可以查看日志并通过统一的会话来控制进程。看例子:我们写了一个py脚本,用于往log文件中记录一条当前的时间。root@ubuntu:/home/zoer# cat daemon.p原创 2013-03-31 14:14:45 · 17746 阅读 · 0 评论 -
Python队列、栈学习
本来打算学习一下python中队列和栈的实现的。搜索了一下,发现python中没有类似java中的Stack或者是Queue的结构。在py中,完全可以通过列表来实现队列和栈的操作。列表的pop()操作就可以完成这个工作。看代码:上面展示了一个队列。在列表a中,1,2,3等算是入队列较早的元素。4、5、6、7算是晚入队列的元素。那么pop(0)操作每次都会从a列表中删除第一个原创 2013-03-12 14:52:11 · 21300 阅读 · 2 评论 -
python 实现base64编码
编码规则在wiki'上有讲解。参考:http://zh.wikipedia.org/wiki/Base64import res='Man'dig=[]for c in s: dig.append(ord(c))s=''for i,d in enumerate(dig): t=bin(d)[2:] while len(t)<8:#如果长度不足8,则补0原创 2013-03-21 21:10:57 · 1581 阅读 · 0 评论 -
Python新式类和旧式类的区别
新式类是为了统一**而在2.2中开始引入的。我使用的是2.6。上面的例子比较明白的说明了问题。B是定义的新式类。那么输入b的时候,不论是type(b),还是b.__class__都是输出的。-----------------------------------另外,新式类和旧式类还有一个区别就是再多继承的时候,查找要调用的方法。新式类是广度优先的查找算法。旧式类的查原创 2013-03-06 22:08:01 · 13619 阅读 · 0 评论 -
Python删除目录下的文件以及文件夹
#!/usr/bin/env pythonimport osimport shutilfilelist=[]rootdir="/home/zoer/aaa"filelist=os.listdir(rootdir)for f in filelist: filepath = os.path.join( rootdir, f ) if os.path.isfile(filepath):原创 2013-03-01 14:25:05 · 26512 阅读 · 0 评论 -
Python操作MySql-pybatis的准备阶段(三)
直接看代码:#-*- encoding: gb2312 -*-'''Created on 2013-3-5@author: naughty'''import os, sys, stringimport MySQLdbtry: conn = MySQLdb.connect(host='localhost',user='',passwd='',db='test')原创 2013-03-05 18:17:00 · 1122 阅读 · 0 评论 -
Python 26进制计算
# -*- coding:utf-8 -*-'''Created on 2013-3-29@author: naughty'''dict={}dict['A']=1dict['B']=2dict['C']=3dict['D']=4dict['E']=5dict['F']=6dict['G']=7dict['H']=8dict['I']=9dict['J']=10原创 2013-04-26 11:32:33 · 3100 阅读 · 2 评论 -
Python性能建议
有关python的几点性能建议。从python.org翻译过来的。-----------------------------------------------写在翻译之初:;使用这些方法的时候一定要测试,不要盲从的相信一种方法一定好于或者坏于另外一种。-----------------------------------------------写代码实现一个功能要有以下这原创 2013-04-25 21:02:27 · 3296 阅读 · 0 评论 -
PyBatis优势和劣势
PyBatis的优势是什么?1、在ibatis中,别名是全局的。但是不同的对象和表之间有可能有相同的属性名字,这样如果别名仍然是全局的话,那么给属性naming,就是一个很大的麻烦。pybatis做到了每个要映射的对象一个命名空间(其实是将类名作为key的一部分),这样就避免了全局别名的问题。2、ibatis中,别名的意思是说,给类中的一个非简单数据对象(我定义简单数据对象为字符串、数字等原创 2013-04-23 15:29:08 · 1474 阅读 · 0 评论 -
PyBatis0.1版本-测试
表结构:name varchar(100),age int,score int下面是测试代码:# -*- coding:utf-8 -*-'''Created on 2013-3-5@author: naughty'''from com.domain import beansfrom com.domain.TransactionManager import Transac原创 2013-03-12 14:26:27 · 1087 阅读 · 0 评论 -
python描述符
面试问到的。从没听说过这个东西。今天总结一下。---------------------------------在Python中,访问一个属性的优先级顺序按照如下顺序:1.类属性2.数据描述符3.实例属性4.非数据描述符5.__getattr__()方法。这个方法的完整定义如下所示:def __getattr__(self,attr) :#attr是self的一个属原创 2013-04-11 14:40:32 · 5912 阅读 · 1 评论 -
Python动态类型,怎么判断是输入数据的合法性?
python是一种动态类型的语言。一个属性,既可以给赋值一个数字,也可以给赋值一个字符串。那么,在项目开发中,怎么才能做到检测赋值的时候输入数据的合法性呢?----------------------------------先看下面的代码# -*- coding:utf-8 -*-'''Created on 2013-3-29@author: naughty'''clas原创 2013-04-11 11:51:05 · 7404 阅读 · 0 评论 -
python解析xml
python解析xml非常方便。在dive into python中也有讲解。如果xml的结构如下: zoer think in java this is a good book naughty gone with the wind this is a good book 2 cc this is a good book 3 第三个原创 2012-08-16 14:39:18 · 1414 阅读 · 0 评论 -
Python解析xml文件-pybatis的准备阶段(二)
题外话:py,类中定义的所有变量都是public的。-------------------------在qq实习的时候,解析过xml。用的是minidom。------------------------------------------要参考这里。关键需要注意的一点就是,对于空白的处理和对CDATA的处理。原创 2013-03-05 16:25:58 · 1119 阅读 · 0 评论 -
Python中的原始字符串
Python中的原始字符串以r开头,使用原始字符串可以避免字符串中转义字符带来的问题。其实所谓原始字符串,都是给人看的。对于计算机来说,没有什么原始字符串的概念。只是输出给人看的时候,会朋友一些\n、\t等的问题,让人看起来不好看而已。例如写路径时 path = 'c:\noway',此时用 print path,其结果为:c:oway如果用原始字符串 path = r'c:\原创 2013-03-18 22:33:54 · 15348 阅读 · 0 评论 -
Python urllib模块学习
python提供了对访问网页的简单形式。使用urllib2一个函数即可。import urllib2response = urllib2.urlopen('http://python.org/')html = response.read()print html这是简单的方法。在urllib2中,还有一些更复杂的功能可以使用。HTTP协议基于请求和回应(requests &resp原创 2013-03-21 15:21:20 · 1457 阅读 · 0 评论 -
Python中的反射(自省)-pybatis的准备阶段(一)
想开发一个python版本的可用产品了。从ORM开始吧。先做知识储备。-------------------------------想开发一个类似ibatis的产品,暂时就叫做PyBatis吧。需要用到反射。-----------------一、访问对象的属性在py中,可以很简单的得到一个对象是否有一个属性,也可以简单的就得到对象的属性值。看下面代码:'''Cre原创 2013-03-05 15:16:13 · 2627 阅读 · 0 评论 -
Python pickle模块学习
pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。------------------------------------------pickle.dump(obj, file[, protocol]) 序列化对象,并将结果数据流写入到文件对象中。参数protocol是序列化模式,默认值为0,表示以文本的形式序列化。protocol的值还可以是1或2,表示以原创 2013-03-05 13:47:09 · 45639 阅读 · 5 评论 -
Python爬取图片
参考了别人的代码。给代码添加了多线程和Queue的结合应用。#!/usr/bin/env python# -*- coding:utf-8 -*-'''Created on 2013-3-21@author: naughty'''# author: wklkenfrom sgmllib import SGMLParserimport osimpo原创 2013-03-21 19:25:53 · 8075 阅读 · 1 评论 -
认识ssh
这不是java中的ssh!wiki上有解释。原创 2013-03-20 21:23:57 · 1179 阅读 · 0 评论 -
Python中的*args和**kwargs
参考了这里。python中#-*-coding:utf-8-*- def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '---------------------------------------'if __name__ == '__main原创 2013-03-15 13:49:13 · 2855 阅读 · 1 评论 -
Python发送邮件给qq邮箱
看代码:#-*-coding:utf-8-*- #===============================================================================# 导入smtplib和MIMEText#================================================================原创 2013-03-14 17:34:35 · 7339 阅读 · 2 评论 -
Python类学习
#!/usr/bin/env pythonclass Test: def __init__(self,msg="hello"): self.wel=msg print "init" def go(self,name,do): print self.wel+"go! "+name+" "+dod=Test("hi,")d.go("naughty","figh原创 2013-03-01 16:08:39 · 1214 阅读 · 0 评论 -
Python的数据库连接池DBUtils
DBUtils的使用还是蛮方便的。下载了DBUtils之后,直接 setup.py install 就可以安装了。我是在windows下安装的。创建连接池,就可以从连接池中取得连接并使用了。在使用的过程中,用户没有从中取出连接的时候,去mysql中show processlist,发现数据库已经存在了这些连接了。原创 2013-03-06 21:18:49 · 3816 阅读 · 0 评论 -
Python中Mysqldb的使用以及事务的支持-pybatis首次露面-pybatis的准备阶段(十)
http://zetcode.com/db/mysqlpython/这个地址中有一些关于mysqldb模块的使用介绍。其中关键一点的是事务支持。“For databases that support transactions, the Python interface silently starts a transaction when the cursor is created.原创 2013-03-11 17:34:05 · 13022 阅读 · 2 评论 -
Python的多线程支持-pybatis的准备阶段(十一)
在考虑pybatis中是不是要用多线程呢?刚刚在技术群里问了一下。用户的请求大概会是从web服务器中发出来的。那么,web服务器本身就会对请求使用多线程来处理。那么orm就不用处理了。但是还是要学习一下多线程的知识。在py中使用线程有两种方式:1、自己用函数包装线程对象2、继承线程类。先看第一种情况:import timeimport threaddef tim原创 2013-03-11 21:00:58 · 1064 阅读 · 0 评论 -
Python中globals和locals的区别-pybatis的准备阶段(六)
Python的两个内置函数,locals 和globals,它们提供了基于字典的访问局部和全局变量的方式。 1、locals()是只读的。globals()不是。这里说的只读,是值对于原有变量的只读。其实还可以对locals()赋值的。见下图上面的图就可以看出了,对locals()中增加了一个b变量。2、locals和globals的返回不同locals(...) l原创 2013-03-08 09:52:59 · 3417 阅读 · 0 评论 -
Python解析xml-pybatis的准备阶段(八)
一直以来都是用xml.dom.minidom来解析xml的。重点关注一下nodeType。nodeType是结点的类型,现在有以下几种:'ATTRIBUTE_NODE''CDATA_SECTION_NODE''COMMENT_NODE''DOCUMENT_FRAGMENT_NODE''DOCUMENT_NODE''DOCUMENT_TYPE_NODE''ELEM原创 2013-03-10 15:35:19 · 1222 阅读 · 0 评论 -
Python小知识点
a. python里所有对象可以动态地添加新的属性,当类动态地添加属性后,类的实例都能访问到该对象,其实这个很好理解,动态语言,只要遵循一定的解析规则就行b. 类里的变量不是以self,开头定义的都是类变量,相当于java,c++里的static,所有实例共享他们c.函数都是实现为descriptord.每个实例有__dict__用来存放动态的属性e.继承:当继承后,python不原创 2013-03-06 21:51:12 · 1417 阅读 · 0 评论 -
Python中@注解的用法
在java中,@注解的用处各位应该都了解一些。在python中,@可以将python定义的函数“当做”属性访问,从而提供更加友好访问方式。在之前的文章中提到过静态方法,也是使用@来实现的。是@staticmethod原创 2013-03-06 21:32:52 · 17721 阅读 · 0 评论