04 2012 档案

摘要:学习python终归要能用到,由于工作中经常牵涉到文件批量重命名,拷贝及指定条件搜索,特别是后者,非常有用。先将递归搜索功能实现之:#encoding=utf-8'''Created on 2012-4-30@author: luhx'''import osnewdir = "" #递归搜索函数 def search(rootdir): #dirlist = [] print rootdir dirlist = os.listdir(rootdir) for item in dirlist: item = rootdir + 阅读全文
posted @ 2012-04-30 14:12 绿色的麦田 阅读(293) 评论(0) 推荐(0) 编辑
摘要:前面已经说完了怎样使用log4cxx进行日志记录,今天发现问题稍有点复杂。原因是系统中用到的一个dll已经使用了log4cxx。我们在开发的过程中也想使用log4cxx,但不想与DLL中的日志写到同一个文件中,问题就来了,怎样区别打印到不同的文件中呢,DLL中采用的为应该为getRootLogger的方式。这个网址中的文章很好,解决方案主要参考此文:http://www.open-open.com/doc/view/4bf2bd4f517c4044b1f7d4e2d22eccaflog4cxx主要是由三部分组成:loggers, appenders和layouts.这三个主要组成部分,协同协作 阅读全文
posted @ 2012-04-06 23:20 绿色的麦田 阅读(2019) 评论(0) 推荐(0) 编辑
摘要:这个还真的没怎么看懂,先上代码,此代码即为函数装饰器的一种用法。回头再来看一遍。#!/usr/bin/env pythonfrom time import ctime, sleepdef tsfunc(func): def wrappedFunc(): print '[%s] %s() called' % ( ctime(), func.__name__) return func() return wrappedFunc@tsfuncdef foo(): passfoo()sleep(4)for i in range(2): ... 阅读全文
posted @ 2012-04-04 21:52 绿色的麦田 阅读(226) 评论(0) 推荐(0) 编辑
摘要:这个函数据说叫做函数发生器,看文档也没看明白,后来在网上看了一个用法,发现实际上相当于return 语句,如下代码:def addlist(alist): for i in alist: yield i + 1取出alist的每一项,然后把i + 1塞进去。然后通过调用取出每一项:alist = [1, 2, 3, 4]for x in addlist(alist): print x,结果为:2 3 4 5这个调用非常清晰,每到yield i + 1就相当于return i + 1,即执行到这儿,此函数就结束了,有了前面基本的认识,对于后面较高级用法有很大的作用。较高... 阅读全文
posted @ 2012-04-02 11:40 绿色的麦田 阅读(340) 评论(0) 推荐(0) 编辑
摘要:正则表达式的规则网上有一堆,先略过。对于初学者建议用vs2010中有一个python,里面的调试功能非常好用,可以很方便的看到一切信息。看到其中有一条贪婪模式和非贪婪模式的区别,这个要理解起来有点难度。示例代码:block = re.sub(r'(.+?)', r'hello\1_void()', r'*abc.efg*')#非贪婪模式,匹配尽可能少#输出结果block = 'hello*_void()helloa_void()hellob_void()helloc_void()hello._void()helloe_void()hell 阅读全文
posted @ 2012-04-02 00:45 绿色的麦田 阅读(1057) 评论(0) 推荐(0) 编辑