随笔分类 -  python

python for else
摘要:>>> for i in range(0,10):if i > 10:break;else:print "hello world";输出:hello world>>> for i in range(0,10):if i > 5:break;else:print "hello world";没有输出-... 阅读全文
posted @ 2014-05-01 10:33 一个人的天空@ 阅读(12130) 评论(0) 推荐(1) 编辑
How to exit the entire application from a Python thread?
摘要:If all your threads except the main ones are daemons, the best approach is generally thread.interrupt_main() -- any thread can use it to raise a Keybo... 阅读全文
posted @ 2014-04-24 11:33 一个人的天空@ 阅读(350) 评论(0) 推荐(0) 编辑
分享三个好用的装饰器(转)
摘要:最近都是跟遗留代码打交道,理解代码逻辑上遇到了不少的瓶颈,因此琢磨了几个小工具帮助一下模块之间联调的时候,经常会出现扯皮的情况,双方都指责是对方的输出(输入)有问题。于是搞了这个用于调试用的包装器,可以显示输入的参数和输出的结果,这下不可以扯皮了吧1 def log_wrapper(func):2 @functools.wraps(func)3 def log_func_name(self, *args, **kws):4 logger.debug("调用函数[%s]", func.func_name)5 logger.debug("... 阅读全文
posted @ 2014-03-26 17:34 一个人的天空@ 阅读(615) 评论(0) 推荐(0) 编辑
python语法32[装饰器decorator](转)
摘要:一 装饰器decoratordecorator设计模式允许动态地对现有的对象或函数包装以至于修改现有的职责和行为,简单地讲用来动态地扩展现有的功能。其实也就是其他语言中的AOP的概念,将对象或函数的真正功能也其他辅助的功能的分离。二Python中的decoratorpython中的decorator通常为输入一个函数,经过装饰后返回另一个函数。 比较常用的功能一般使用decorator来实现,例如python自带的staticmethod和classmethod。装饰器有两种形式:@Adeffoo():pass相当于:deffoo():passfoo=A(foo)第二种为带参数的:@A(arg 阅读全文
posted @ 2014-03-26 17:33 一个人的天空@ 阅读(300) 评论(0) 推荐(0) 编辑
redis-py说明文件(转)
摘要:转自:http://blog.sina.com.cn/s/blog_6262a50e0101574h.html原文:https://github.com/andymccurdy/redis-pyredis-py¶Redis key-value数据库的Python接口。安装¶$ sudo pip install redis或采用下面方法(最好是用pip):$ sudo easy_install redis从源代码安装:$sudo python setup.py install入门¶>>>importredis>>>r=redis. 阅读全文
posted @ 2014-03-03 16:27 一个人的天空@ 阅读(7315) 评论(0) 推荐(0) 编辑
一行代码完成并行任务(转)
摘要:本文由伯乐在线-colleen__chen翻译自Chris。欢迎加入技术翻译小组。转载请参见文章末尾处的要求。众所周知,Python的并行处理能力很不理想。我认为如果不考虑线程和GIL的标准参数(它们大多是合法的),其原因不是因为技术不到位,而是我们的使用方法不恰当。大多数关于Python线程和多进程的教材虽然都很出色,但是内容繁琐冗长。它们的确在开篇铺陈了许多有用信息,但往往都不会涉及真正能提高日常工作的部分。经典例子DDG上以“Python threading tutorial (Python线程教程)”为关键字的热门搜索结果表明:几乎每篇文章中给出的例子都是相同的类+队列。事实上,它们就 阅读全文
posted @ 2014-02-14 16:15 一个人的天空@ 阅读(890) 评论(0) 推荐(1) 编辑
py2exe使用方法 (含一些调试技巧,如压缩email 类)(转)
摘要:一、简介py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序。py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32com client和server,和其它的独立程序。py2exe是发布在开源许可证下的。二、安装py2exe从http://prdownloads.sourceforge.net/py2exe下载并运行与你所安装的Python对应的py2exe版本的installer,这将安装py2exe和相应的例子;这 阅读全文
posted @ 2014-01-08 10:32 一个人的天空@ 阅读(8555) 评论(0) 推荐(0) 编辑
Accessing an element's parent with ElementTree(转)
摘要:Today I ran across a situation where I needed to programmatically remove specific elements from a KML file. I was already using Python's ElementTree library for my KML processing, so I attempted to use ElementTree's remove() method. The remove() method can only removesubelements, requiring a 阅读全文
posted @ 2014-01-02 11:00 一个人的天空@ 阅读(478) 评论(0) 推荐(0) 编辑
A* search算法解迷宫
摘要:这是一个使用A* search算法解迷宫的问题,细节请看:http://www.laurentluce.com/posts/solving-mazes-using-python-simple-recursivity-and-a-search/Laurent Luce的A* search算法有点问题,我这边运行是死循环,稍微修改了一下。import heapqclass Cell(object): def __init__(self, x, y, reachable): self.reachable = reachable self.x = x s... 阅读全文
posted @ 2013-12-25 10:21 一个人的天空@ 阅读(2094) 评论(0) 推荐(0) 编辑
Python threads synchronization: Locks, RLocks, Semaphores, Conditions, Events and Queues(Forwarding)
摘要:This article describes the Python threading synchronization mechanisms in details. We are going to study the following types: Lock, RLock, Semaphore, Condition, Event and Queue. Also, we are going to look at the Python internals behind those mechanisms.The source code of the programs below can be fo 阅读全文
posted @ 2013-12-20 15:55 一个人的天空@ 阅读(1393) 评论(0) 推荐(1) 编辑
Json概述以及python对json的相关操作(转)
摘要:什么是json:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。JSON建构于两种结构:“名称/值”对的集合(A collec 阅读全文
posted @ 2013-12-10 17:58 一个人的天空@ 阅读(69185) 评论(0) 推荐(3) 编辑
python类型比较的3种方式(转)
摘要:通过types模块的类成员来判断,其实所有python中的类型都是这个types模块中类型的实例。import typestype(x) is types.IntType # 判断是否int 类型type(x) is types.StringType #是否string类型type(x) is types.InstanceType #是否是自定义的实例对象, isinstance函数不支持比较这个通过已知类型比较,因为python中所有相同类型的对象他们所引用的类型都是同一个,所以可以通过如下的方式对比:type(x) == types(1) # 判断是否int 类型type(x) == ty 阅读全文
posted @ 2013-11-25 16:57 一个人的天空@ 阅读(2675) 评论(0) 推荐(0) 编辑
Disable File System Redirector For Windows x64 (Python recipe)(转)
摘要:This disables the Windows File System Redirector.When a 32 bit program runs on a 64 bit operating system the paths to C:/Windows/System32 automatically get redirected to the 32 bit version (C:/Windows/SysWow64), if you really do need to access the contents of System32, you need to disable the file s 阅读全文
posted @ 2013-11-21 11:43 一个人的天空@ 阅读(784) 评论(0) 推荐(0) 编辑
[Windows核心编程]32bit程序在64bit操作系统下处理重定向细节[1]
摘要:这段时间,都在做Ring3层的普通32bit程序兼容64bit操作系统的代码修改,在此记录修改和学习心德。编程领域太广,任何人经历有限,本人不是专家,所以我一贯原则是:用到的时候,才去研究,在去记录。只要个人的基础知识扎实,吸收一些新的东西,还是蛮顺利的。1.64bit操作系统的重定向机制以及目的在64bit操作系统中,为了无缝兼容32bit程序的运行,64bit的Windows操作系统采用重定向机制。目的是为了能让32bit程序在64bit的操作系统不仅能操作关键文件文夹和关键的注册表并且又要避免与64bit程序冲突。微软采用重定向机制的原理很简单,说白了就是让关键文件/文件夹或者关键注册表 阅读全文
posted @ 2013-11-21 11:02 一个人的天空@ 阅读(682) 评论(0) 推荐(0) 编辑
ConfigParser MissingSectionHeaderError: File contains no section headers.
摘要:今天使用ConfigParser解析一个ini文件,报出如下错误: config.read(logFile) File "C:\Python26\lib\ConfigParser.py", line 286, in read self._read(fp, filename) File "C:\Python26\lib\ConfigParser.py", line 482, in _read raise MissingSectionHeaderError(fpname, lineno, line)MissingSectionHeaderError: Fil 阅读全文
posted @ 2013-11-18 14:42 一个人的天空@ 阅读(21628) 评论(0) 推荐(0) 编辑
【scrapy】使用方法概要(二)(转)
摘要:【请初学者作为参考,不建议高手看这个浪费时间】上一篇文章里介绍了scrapy的主要优点及linux下的安装方式,此篇文章将简要介绍scrapy的爬取过程,本文大部分内容源于scrapy文档,翻译并加上了笔者自己的理解。忘记scrapy,一般所说的爬虫工作分为两个部分,downoader 和 parser:downloader输入是url列表,输出抓取到的rawdata,可能时候是html源代码,也可能是json,xml格式的数据。parser输入是第一部分输出的rawdata,根据已知的规则提取所需的info图1. 简单爬虫图1所示的是最简单的爬虫,不考虑解析url,并把rawdata中的ur 阅读全文
posted @ 2013-10-16 18:03 一个人的天空@ 阅读(1295) 评论(0) 推荐(0) 编辑
【scrapy】使用方法概要(一)(转)
摘要:【请初学者作为参考,不建议高手看这个浪费时间】工作中经常会有这种需求,需要抓取互联网上的数据。笔者就经常遇到这种需求,一般情况下会临时写个抓取程序,但是每次遇到这种需求的时候,都几乎要重头写,特别是面临需要抓取大数量网页,并且被抓取网站有放抓取机制的时候,处理起来就会很麻烦。无意中接触到了一个开源的抓取框架scrapy,按照introduction做了第一个dirbot爬虫,觉得很方便,就小小研究了一下,并在工作中用到过几次。scrapy的文档是英文的,网上相关的说明很少,使用的过程中也遇到过很多问题,大部分都是在stack overflow上找到的解答,看来这个工具国外的同行们用的会更多些。 阅读全文
posted @ 2013-10-16 18:02 一个人的天空@ 阅读(1408) 评论(0) 推荐(0) 编辑
【scrapy】使用方法概要(四)(转)
摘要:【请初学者作为参考,不建议高手看这个浪费时间】上一篇文章,我们抓取到了一大批代理ip,本篇文章介绍如何实现downloaderMiddleware,达到随即使用代理ip对目标网站进行抓取的。抓取的目标网站是现在炙手可热的旅游网站www.qunar.com,目标信息是qunar的所有seo页面,及页面的seo相关信息。qunar并没有一般网站具有的 robots.txt文件,所以无法利用列表进行抓取,但是,可以发现,qunar的seo页面主要部署在http://www.qunar.com/routes/下,这个页面为入口文件,由此页面及此页面上所有带有routes的链接开始递归的抓取所有带有ro 阅读全文
posted @ 2013-10-16 18:01 一个人的天空@ 阅读(1046) 评论(0) 推荐(0) 编辑
【scrapy】使用方法概要(三)(转)
摘要:请初学者作为参考,不建议高手看这个浪费时间】前两篇大概讲述了scrapy的安装及工作流程。这篇文章主要以一个实例来介绍scrapy的开发流程,本想以教程自带的dirbot作为例子,但感觉大家应该最先都尝试过这个示例,应该都很熟悉,这里不赘述,所以,将用笔者自己第一个较为完整的抓取程序作为示例作为讲解。首先,要大规模抓取一个网站的内容,必要的资源便是代理ip这一资源,如果不使用代理ip,又追求抓取的速度,很可能会被被抓网站发现行踪并封掉抓取机,所以抓取大量可用的代理ip便是我们第一个任务。大概这个爬虫要实现以下三个功能:1. 抓取代理ip,端口信息2. 验证代理ip,判断其透明性3. 将可用的代 阅读全文
posted @ 2013-10-16 18:00 一个人的天空@ 阅读(5147) 评论(1) 推荐(0) 编辑
Duplicate Elimination in Scrapy(转)
摘要:之前介绍 Scrapy的时候提过 Spider Trap ,实际上,就算是正常的网络拓扑,也是很复杂的相互链接,虽然我当时给的那个例子对于我感兴趣的内容是可以有一个线性顺序依次爬下来的,但是这样的情况在真正的网络结构中通常是少之又少,一但链接网络出现环路,就无法进行拓扑排序而得出一个依次遍历的顺序了,所以 duplicate elimination 可以说是每一个 non-trivial 的必备组件之一,这样就算在遍历的过程中遇到环路也不用怕,排重组件会检测到已经访问过的地址,从而避免在环路上无限地循环下去。最简单的办法也就是每次抓取页面的时候记录下 URL ,然后每次抓取新的 URL 之前先 阅读全文
posted @ 2013-09-22 23:21 一个人的天空@ 阅读(4395) 评论(1) 推荐(4) 编辑