随笔分类 -  Python

摘要:前段时间有朋友让帮忙做一个日志监控的脚本,要求如下:1.windows环境2.当匹配日志关键字时会发出声音,匹配的关键字不同,播放的声音不同3.能做到实时响应于是从网上找了个windows版的tail,使用python简单写了个小脚本,代码如下:#!/usr/bin/env python# encoding: utf-8"""MonitorLog.pyUsage: MonitorLog.py ...Monitor the log file-f log file-h help infopython MonitorLog.py -f C:\monitor.logCre 阅读全文
posted @ 2011-09-14 15:20 残夜 阅读(673) 评论(0) 推荐(0)
摘要:Python具有强大的扩展能力,我列出了50个很棒的Python模块,包含几乎所有的需要:比如Databases,GUIs,Images, Sound, OS interaction, Web,以及其他。推荐收藏。Graphical interfacewxPythonhttp://wxpython.orgGraphical interfacepyGtkhttp://www.pygtk.orgGraphical interfacepyQThttp://www.riverbankcomputing.co.uk/pyqt/Graphical interfacePmwhttp://pmw.source 阅读全文
posted @ 2011-09-14 15:07 残夜 阅读(318) 评论(0) 推荐(0)
摘要:Python 实现线程式编程的一种简单且有效的模式。但是,这种方法的一个缺陷就是它并不总是能够提高应用程序的速度,因为全局解释器锁(Global Interpreter Lock,GIL)将线程有效地限制到一个核中。如果需要使用计算机中的所有核,那么通常都需通过 对 经常使用 fork 操作来实现,从而提高速度。处理进程组是件困难的事情,因为为了在进程之间进行通信,需要对所有调用进行协调,这通常会使事情变得更复杂。自 2.6 版本起,Python 包括了一个名为 “多进程(multiprocessing)” 的模块来帮助处理进程。该进程模块的 API 与线程 API 的工作方式有些相似点,但是 阅读全文
posted @ 2011-09-13 16:45 残夜 阅读(1837) 评论(0) 推荐(0)
摘要:python只定义了6种数据类型,字符串,整数,浮点数,列表,元组,字典。但是C语言中有些字节型的变量,在python中该如何实现呢?这点颇为重要,特别是要在网络上进行数据传输的话。python提供了一个struct模块来提供转换,用于在二进制数据结构和 Python 元组间转换。 下面就介绍这个模块中的几个方法。binstr=struct.pack(pattern,*tuple) tuple=struct.unpack('Iiqiii',data.read(struct.calzsize('Iiqiii')))struct.pack用于将Python的值根据格 阅读全文
posted @ 2011-09-08 13:08 残夜 阅读(965) 评论(0) 推荐(0)
摘要:日志配置见:[loggers]keys=root,idaparser[handlers]keys=consoleHandler,fileHandler[formatters]keys=simpleFormatter[formatter_simpleFormatter]format=[%(asctime)s] - (%(levelname)s) : %(message)s[logger_root]level=DEBUGhandlers=consoleHandler[logger_idaparser]level=DEBUGhandlers=consoleHandler,fileHandlerqua 阅读全文
posted @ 2011-09-08 11:43 残夜 阅读(332) 评论(0) 推荐(0)
摘要:使用Python logging模块已经有一段时间了,为了更好的理解log工作方式,看了一下其源码,后总结如下: 日志模块中有以下核心组件:1.Logger类:日志处理类2.Filter类:过滤器类(是Logger、Handler等类父类)3.Handler类:日志处理类,有各种子类(FileHandler,StreamHandler等)4.LogRecord类:日志记录对象,代表一条日志记录5.Manager类:日志对象管理器,维护所有Log实例,和其父子关系6.Formatter类:日志记录格式化对象1. logging模块的日志的根为RootLogger看下面示例代码: loggi... 阅读全文
posted @ 2011-09-06 16:34 残夜 阅读(699) 评论(0) 推荐(0)
摘要:Python的logging模块接口仿log4j,概念上一致,使用上相当方便。利用logging.config.fileConfig(),可以将日志的配置用文件来描述,简化了日志的初始化。例程:# test.pyimport loggingimport logging.configlogging.config.fileConfig("logging.conf")#create loggerlogger = logging.getLogger("example")#"application" codelogger.debug(" 阅读全文
posted @ 2011-09-06 15:36 残夜 阅读(1045) 评论(0) 推荐(0)
摘要:Python日志模块简介使用Python写程序,有时要用上日志系统。特别是Python这样的动态语言,很多错误都只能在运行的时候才能发现,一个好的日志系统对于Python程序相当重要。最简单的解决方案当然是直接使用print输出运行信息。但是这样太简单了,没有分级功能,如果在发布的时候想去掉调试用的运行信息还得找出所有的print语句进行修改。再者,print只能输出到控制台,想要输出到文件或者通过电子邮件发送到其他地方,一个 print语句就没办法解决了。通过使用Python的日志系统,就可以解决以上问题。 首先看一下这个示例:import logginglogger=logging.get 阅读全文
posted @ 2011-09-06 14:42 残夜 阅读(621) 评论(0) 推荐(0)
摘要:Parallel Python是python的分布式计算模块,其功能是可以以 函数+数据 的形式,将任务分布到Cluster中的各台机器的CPUs上进行运算。 同时Parallel Python的Cluster构建支持Auto Discovery,可以在内网中非常方便的搭建起一个自组织的分布式计算平台。 Parallel Python没有DFS,可以理解为MapReduce。 学习PP已经有一段时间了,经过实践得到如下结论:其不适合有大量数据交换的分布式场景,直接表现为经过出来socket连接自动,远程机器自动断开到server的连接其不适合程序中调用子进程的场景(当前版本1.6.1还没有解决 阅读全文
posted @ 2011-09-02 12:28 残夜 阅读(1100) 评论(0) 推荐(0)
摘要:功能SimplePooledDBDBUtils.SimplePooledDB 是一个非常简单的数据库连接池实现。他比完善的 PooledDB 模块缺少很多功能。 DBUtils.SimplePooledDB 本质上类似于 MiscUtils.DBPool 这个Webware的组成部分。你可以把它看作一种演示程序。SteadyDBDBUtils.SteadyDB 是一个模块实现了”强硬”的数据库连接,基于DB-API 2建立的原始连接。一个”强硬”的连接意味着在连接关闭之后,或者使用次数操作限制时会重新连接。一个典型的例子是数据库重启时,而你的程序仍然在运行并需要访问数据库,或者当你的程序连接了 阅读全文
posted @ 2011-08-12 13:31 残夜 阅读(898) 评论(0) 推荐(0)
摘要:1 简介DBUtils是一套Python数据库连接池包,并允许对非线程安全的数据库接口进行线程安全包装。DBUtils来自Webware for Python。DBUtils提供两种外部接口:* PersistentDB :提供线程专用的数据库连接,并自动管理连接。* PooledDB :提供线程间可共享的数据库连接,并自动管理连接。实测证明 PersistentDB 的速度是最高的,但是在某些特殊情况下,数据库的连接过程可能异常缓慢,而此时的PooledDB则可以提供相对来说平均连接时间比较短的管理方式。另外,实际使用的数据库驱动也有所依赖,比如SQLite数据库只能使用Persistent 阅读全文
posted @ 2011-08-12 13:26 残夜 阅读(2104) 评论(0) 推荐(0)
摘要:os.chmod()方法 此方法通过数值模式更新路径或文件权限。该模式可采取下列值或按位或运算组合之一:stat.S_ISUID: Set user ID on execution.stat.S_ISGID: Set group ID on execution.stat.S_ENFMT: Record locking enforced.stat.S_ISVTX: Save text image after execution.stat.S_IREAD: Read by owner.stat.S_IWRITE: Write by owner.stat.S_IEXEC: Execute by ow 阅读全文
posted @ 2011-08-09 13:53 残夜 阅读(16369) 评论(0) 推荐(0)
摘要:PyCurl上传文件#!/usr/bin/env python#-*- coding: utf-8 -*-import pycurlimport StringIOc = pycurl.Curl() #创建一个同libcurl中的CURL处理器相对应的Curl对象fp = StringIO.StringIO()c.setopt(pycurl.WRITEFUNCTION, fp.write)c.setopt(pycurl.FOLLOWLOCATION, 1)c.setopt(pycurl.MAXREDIRS, 5)c.setopt(pycurl.CONNECTTIMEOUT, 60)c.set.. 阅读全文
posted @ 2011-08-08 13:59 残夜 阅读(1661) 评论(0) 推荐(0)
摘要:pycurl — A Python interface to the cURL library Pycurl包是一个libcurl的Python接口。libcurl 是一个支持FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 和 LDAP的客户端URL传输库。libcurl也支持HTTPS认证,HTTP POST,HTTP PUT,FTP上传,代理,Cookies,基本身份验证,FTP文件断点继传,HTTP代理通道等等。 Libcurl提供的所有功能都可以通过pycurl接口来使用。pycurl库介绍1.pycurl.global_init( 阅读全文
posted @ 2011-08-05 17:10 残夜 阅读(1484) 评论(0) 推荐(0)
摘要:Pylint 提供了简单的方式来分析 Python 代码,其高可配置性很容易使一个部门的人员使用统一的代码风格。 本文将通过理论介绍和示例分析阐述如何 Pylint 来规范 Python 代码。一、Pylint 是什么Pylint 是一个 Python 代码分析工具,它分析 Python 代码中的错误,查找不符合代码风格标准和有潜在问题的代码。Pylint 是一个 Python 工具,除了平常代码分析工具的作用之外,它提供了更多的功能:如检查一行代码的长度,变量名是否符合命名标准,一个声明过的接口是否被真正实现等等。Pylint 的一个很大的好处是它的高可配置性,高可定制性,并且可以很容易写小 阅读全文
posted @ 2011-07-04 11:44 残夜 阅读(5359) 评论(0) 推荐(0)