随笔分类 -  Python

摘要:# vim /etc/resolv.conf# yum install gcc-c++# tar jxvf Python-2.6.5.tar.bz2# cd Python-2.6.5# ./configure# make && make install# python -V# /usr/local/bin/python2.6 -V# mv /usr/bin/python /usr/bin/python.bak# ln -s /usr/local/bin/python2.6 /usr/bin/python# python -V# tar xvzf tornado-1.2.1.ta 阅读全文
posted @ 2011-07-05 16:00 dkcndk 阅读(1370) 评论(0) 推荐(0) 编辑
摘要:【搜狐IT消息】北京时间6月22日消息,据国外媒体报道,本•达奈尔(Ben Darnell)刚刚在谷歌的Tornado群组宣布,开源网络服务框架Tornado推出2.0版。 Tornado是用Pyhton语言开发的实时网络服务框架,它支持上万次的不间断连接,因此也支持以长轮询(long-polling)方式发布实时数据。根据达奈尔的说法,此次Tornado更新主要包括模板输出默认开启转义、支持Python 3.2、AsyncHTTPClient的默认实现现在是simple_httpclient等。 目前还不清楚Facebook在Tornado的此次更新中扮演了什么角色。2009年,Facebo 阅读全文
posted @ 2011-07-04 10:43 dkcndk 阅读(1667) 评论(0) 推荐(0) 编辑
摘要:#!/usr/bin/pythonimport tracebacktry:1/0#except Exception,e:#print traceback.format_exc() except Exception as e:print e#!/usr/bin/pythonimport tracebacktry:1/0#except Exception,e:#print traceback.format_exc() except Exception , e:print e Python的异常处理能力是很强大的,可向用户准确反馈出错信息。在Python中,异常也是对象,可对它进行操作。所有异常都是 阅读全文
posted @ 2011-06-24 15:37 dkcndk 阅读(206893) 评论(4) 推荐(2) 编辑
摘要:这个struct主要是用来处理C结构数据的,读入时先转换为Python的字符串类型,然后再转换为Python的结构化类型,比如元组(tuple)啥的~一般输入的渠道来源于文件或者网络的二进制流。 在转化过程中,主要用到了一个格式化字符串(format strings),用来规定转化的方法和格式。 下面来谈谈主要的方法: struct.pack(fmt,v1,v2,.....) 将v1,v2等参数的值进行一层包装,包装的方法由fmt指定。被包装的参数必须严格符合fmt。最后返回一个包装后的字符串。 struct.unpack(fmt,string) 顾名思义,解包。比如pack打包,然后就可以. 阅读全文
posted @ 2011-06-07 10:50 dkcndk 阅读(1590) 评论(0) 推荐(0) 编辑
摘要:1. Acceleo是MDA(Model Driven Architecture:模型驱动体系结构)的一个代码自动生成工具,Acceleo能把模型转换为Java,C#,PHP等代码。Acceleo基于 Eclipse平台以及EMF(Eclipse模型框架),开放源代码,可以免费使用。http://www.oschina.net/p/acceleo2.Trufun UML 2008http://www.trufun.net/new/product.html3. Visual Paradigm Suitehttp://www.visual-paradigm.com/download/4. PyUM 阅读全文
posted @ 2011-05-06 16:49 dkcndk 阅读(6005) 评论(0) 推荐(1) 编辑
摘要:Pexpect 是一个用来启动子程序并对其进行自动控制的 Python 模块,它可以用来和像 ssh、ftp、passwd、telnet 等命令行程序进行自动交互。本文介绍 Pexpect 的主要用法和在实际应用中的注意点。 Python 语言的爱好者,系统管理人员,部署及测试人员都能使用 Pexpect 在自己的工作中实现与命令行交互的自动化。Pexpect 是 Don Libes 的 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块。 Pexpect 的使用范围很广,可以用来实现与 ssh 阅读全文
posted @ 2011-04-13 09:54 dkcndk 阅读(681) 评论(0) 推荐(0) 编辑
摘要:EditPlus是我常用的文件编辑器之一,用它来下脚本程序甚是方便,下面来看看如果配置吧:1.先到www.editplus.com上下载editplus.exe,一步一步安装就好了,只有30天的试用期。2.来配置python环境,到www.editplus.com 上下载python配置环境,要下载对应的版本啊。(为了实现语法加亮和自动完成功能,需要下载python.acp和python.stx这两个特征文件:http://www.editplus.com/files/pythonfiles.zip)1):打开editplus,工具--》首选项--》用户工具点击组名称,工具组1重命名为pyth 阅读全文
posted @ 2011-04-02 16:38 dkcndk 阅读(6777) 评论(0) 推荐(1) 编辑
摘要:Python代码:import socket, loggingimport select, errnologger = logging.getLogger("network-server")def InitLog(): logger.setLevel(logging.DEBUG) fh = logging.FileHandler("network-server.log") fh.setLevel(logging.DEBUG) ch = logging.StreamHandler() ch.setLevel(logging.ERROR) formatter 阅读全文
posted @ 2011-03-25 17:57 dkcndk 阅读(12207) 评论(0) 推荐(2) 编辑
摘要:os.path.abspath(path) #返回绝对路径os.path.basename(path) #返回文件名os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。os.path.dirname(path) #返回文件路径os.path.exists(path) #路径存在则返回True,路径损坏返回Falseos.path.lexists #路径存在则返回True,路径损坏也返回Trueos.path.expanduser(path) #把path中包含的"~"和"~user"转换成用户 阅读全文
posted @ 2011-03-25 15:43 dkcndk 阅读(164251) 评论(3) 推荐(11) 编辑
摘要:1.open使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。file_object = open('thefile.txt')try: all_the_text = file_object.read( )finally: file_object.close( )注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法。2.读文件读文本文件input = open('data', 'r')#第二个参数默认为ri 阅读全文
posted @ 2011-03-20 12:11 dkcndk 阅读(16587) 评论(1) 推荐(0) 编辑
摘要:共享内存(Shared Memory)是最简单的进程间通信方式,它允许多个进程访问相同的内存,一个进程改变其中的数据后,其他的进程都可以看到数据的变化。共享内存是进程间最快速的通信方式:`进程共享同一块内存空间。`访问共享内存和访问私有内存一样快。`不需要系统调用和内核入口。`不造成不必要的内存复制。内核不对共享内存的访问进行同步,因此程序员必须自己提供同步。使用共享内存:`某个进程分配内存段。`使用这个内存段的进程要连接(attach)这个内存段。`每个进程使用完共享内存段后,要分离(detach)这个内存段。`在某个地方,必须有一个进程来销毁这个内存段。Linux的内存模型:`每个进程的虚 阅读全文
posted @ 2011-03-14 10:17 dkcndk 阅读(34423) 评论(0) 推荐(0) 编辑
摘要:Python中有一个有趣的语法,只要定义类型的时候,实现__call__函数,这个类型就成为可调用的。 换句话说,我们可以把这个类的对象当作函数来使用,相当于重载了括号运算符。为了弄明白python中__setattr__, __getattr__, __delattr__, __call__的作用,重写dict,扩展其功能Code: class storage(dict):#通过使用__setattr__, __getattr__, __delattr__#可以重写dict,使之通过“.”调用def __setattr__(self, key, value):self[key] = val. 阅读全文
posted @ 2011-03-10 23:40 dkcndk 阅读(23198) 评论(3) 推荐(1) 编辑
摘要:第一:给耗时操作增加统一的TimeOut超时处理机制无论是否启用了Python的多线程机制,只要利用signal模块就可以为耗时操作增加统一的超时处理机制(当然在使用了多线程的情况下还是有一些不一样的地方,只有在主线程里面才可以调用signal.signal函数,而子线程可以调用signal.alarm函数对信号的状态进行设置,具体需参照signal模块自身文档)。单线程情况下,可直接参考如下示例: Code:import signaldef handler(signum, frame):print 'Signal handler called with signal', si 阅读全文
posted @ 2011-03-07 22:20 dkcndk 阅读(7534) 评论(1) 推荐(0) 编辑
摘要:subprocess被用来替换一些老的模块和函数,如:os.system、os.spawn*、os.popen*、popen2.*、commands.*。可见,subprocess是被推荐使用的模块。subprocess模块中只定义了一个类: Popen。可以使用Popen来创建进程,并与进程进行复杂的交互。它的构造函数如下:subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, 阅读全文
posted @ 2011-03-03 22:55 dkcndk 阅读(1241) 评论(0) 推荐(0) 编辑
摘要:在python中使用lambda来创建匿名函数。lambda来源于LISP语言。lambda的形式如下: lambda arg1,arg2... : <expression> lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符,而def则不同,它在创建函数对象的同时会进行这种操作。这是lambda的第一个特点。lambda的第二个特点是,它只是一个表达式,而不是一个语句。如果单独使它成为了一个语句,比如: lambda x: print x 如果你在你的python程序中写下了这么一行,那么毫无意义,这一行代码会创建一个函数对象,但马上又给丢弃了,因为你没有使用它的 阅读全文
posted @ 2011-03-03 22:18 dkcndk 阅读(2619) 评论(0) 推荐(0) 编辑
摘要:从http://initd.org/tracker/pysqlite/wiki/pysqlite下载了SQLITE 的PYTHON绑定。并用WINDOWS下的sqlite3.exe创建了一个库一张表: +++++++++++++++++++ -database: wanna -table name: hello -id name ---- --------- 0 帅哥 1 wannachan 2 dick.chan 3 雯雯 +++++++++++++++++++好了,建表成功了!下面开始PYSQLITE来操作此数据库了!心情那个激动啊~~ 首先建立连接: >>> from 阅读全文
posted @ 2011-03-03 22:16 dkcndk 阅读(12196) 评论(0) 推荐(0) 编辑
摘要:在网上看到了一段python检索文件的程序,感觉不错,模仿着写了一段,但是发现无法检索带有中文的文件夹。查阅了一些资料后,才知道python(我用的2.6)对中文的支持很麻烦。可是皇天不负有心人,经过一系列的摸索,终于完成了对源程序的改良,现在,它可以检索任何文件夹了。程序如下:Code:#coding:utf-8#Filename:dir.pyimport osclass dir(object):def __init__(self):self.count=0self.space=""self.list=[]def p(self,url):if type(url).__na 阅读全文
posted @ 2011-03-03 17:13 dkcndk 阅读(2462) 评论(0) 推荐(0) 编辑
摘要:# -*- coding: utf-8 -*-import osimport shutilimport reimport sys'''功能:将一个文件夹中的指定类型的文件从gb2312或gbk转换成utf-8类型。遍历一个文件夹下所有文件,从src中取出处理后放入ddn中,src中的不变。指定src和ddn就可以了,还可以改文件处理部分完成别的功能'''src=os.getcwd()+'\\'+'!wwwroot'ddn=os.getcwd()+'\\'+'www'######### 阅读全文
posted @ 2011-03-03 00:42 dkcndk 阅读(6570) 评论(0) 推荐(0) 编辑
摘要:from:http://www.unixresources.net/linux/clf/python/archive/00/00/42/73/427317.html结合二位的答复,运行结果如下: >>> a='中国' >>> b=unicode(a, 'cp936') >>> b u'u4e2du56fd' >>> c = b.encode('utf-8') >>> c 'xe4xb8xadxe5x9bxbd' >> 阅读全文
posted @ 2011-03-02 17:17 dkcndk 阅读(987) 评论(0) 推荐(0) 编辑
摘要:法一:isinstance(s, str) 用来判断是否为一般字符串isinstance(s, unicode) 用来判断是否为unicode或if type(str).__name__!="unicode":str=unicode(str,"utf-8")else:pass法二:Python chardet 字符编码判断使用 chardet 可以很方便的实现字符串/文件的编码检测。尤其是中文网页,有的页面使用GBK/GB2312,有的使用UTF8,如果你需要去爬一些页面,知道网页编码很重要的,虽然HTML页面有charset标签,但是有些时候是不对的。 阅读全文
posted @ 2011-03-02 02:36 dkcndk 阅读(80570) 评论(1) 推荐(2) 编辑