分类目录归档:python

python多线程程序的中断(信号)处理

python程序很容易进行多线程处理,也很好进行signal的处理。但是,在多线程程序中进行信号处理,却不太好搞。我琢磨出了一个可行的办法。 看第一个程序:singlethread.py #!/usr/bin/python #coding:utf-8 import signal,os,sys,threading,time import wk def sig_exit(): print “[end time]:”+str(time.time()) print “exited.” sys.exit() def handler(signum, frame): print “got an signal”,signum,frame if signum == 3: sig_exit() if signum == 2: sig_exit() if signum == 9: sig_exit() return None … 继续阅读

发表在 python | 标签为 , , | 留下评论

好色的程序员:怎么加上彩色显示

问题列表 1.终端如何支持显示彩色      现代终端基本上都已经支持彩色显示了。【8色的显示屏是什么时候发明的?】 您可以在bash下用这段来试试:<coolcode> echo -e “\033[40;32mcolored text\033[0;0m” </coolcode> 如果这里出来的是彩色文字,那就说明您的终端是支持彩色显示的。如是没有出来彩色文字,那就,改您的终端类型。一般情况下您的终端软件可选的有vt100,vt102,vt220,vt320,linux,xterm等几种。我一般选linux. 2.终端颜色和颜色表:    要在终端中显示彩色文字,需要这样输出<coolcode> ESC[attr;frontcolor;backgroundcolor;m 要加彩色的文字。 </coolcode> ESC是ESCAPE键,它的ASC码是十进制的27,八进制的33.所以我们用echo -e “\033…”来输入。attr是要给文字设置的属性代号,frontcolor是文字颜色代号,backgroundcolor是文字背景色代码。这些代号及意义如下: <coolcode>   前景             背景              颜色     —————————————     30                40               黑色     31                41               紅色     32                42               綠色     33                43               黃色     34                44               藍色     35                45               紫紅色     36                46               青藍色     37                47               白色     代码              意义     ————————-     0                 OFF     1                 高亮显示     4                 underline     5                 闪烁     7                 反白显示     8                 不可见  … 继续阅读

发表在 linux/unix, python | 标签为 | 2 条评论

PHP注释查看器

今天用着pydoc用的特爽,特希望能够找到一个php下的查看注释的工具。php生成文档倒是有一个phpdocument,另外还有一个给c/c++生成文档的doxygen也能用来给php生成文档。可是就是都太麻烦。于是我的用py写了一个查看php的注释的,能够逐行读入php代码,区分用/*来给出的注释。目前只能查看phpdocument方式的注释,另外,类里面的函数不能正确给出类名。不过在很多情况下够用了。关键是小巧。  请在http://xurenlu.googlecode.com/files/phpcomment.py 这里下载。使用很简单。用 phpcomment.py < phpfile  或 phpcomment.py phpfile即可。   本文由蝌蚪安尼友情赞助.相关文章php高手之路之—屠龙宝刀Bug,又见Bug…Fedora 8显卡相关技巧小技术团队的成长php-APC介绍专业的与非专业的对比:金山的下载器做前端工程师的一点儿总结PHP版的slow-query项目进度

发表在 php技术, python | 标签为 , | 留下评论

hyer开发笔记之:最大页面数的获取

搞垂直搜索(好吧,我承认我说得有点太高雅:搞网页采集)时,一般分这样两步: 搞到列表页,读出所有待抓取的内容页面。 挨个读取内容页面,解析出需要的信息,比如做购特搜索时需要采集商品名称,价格,描述,商品图片等 现在首先要解决的搞到列表页。拿到列表页时,有的同志很认真,就顺着那个下一页又一次地地抓取所有列表页面。其实不是特别必要。比如,bj.58.com的租房信息列表页,分了10000多页,光遍历这些列表页就需要好久。 hyer的处理方式是,把取到列表面的最大页面数做为一个任务,单独拿出来由一个专有模块去执行。逻辑是这样的: 首页你需要人工分析出列表面的URL的特征。58的那个很简单,一下子就能出来: <coolcode> http://bj.58.com/zufang/pn%d/ </coolcode> %d是分页数。 其次我们要找的时,找出一个字串,在页面数过大(就是一直翻下一页,发现没有下一页可以翻的那个识别串)。这里58的页面估计是用.net的控件拖的,所以就是访问一个不存在的分页,比如第10万页,他也有下一页的链的妆可以翻。这时我们取的是列表项里的一个字符串: <coolcode> “onmouseout=”this.style.background=’#F7F9FE” </coolcode> [顺便说一下,58的前端设计同学,这样写javascript不太好呀。]. 接下来,我们需要一页页地翻。(您要有疑问了,咦,说白了您也还是一页页地翻啊!) NO! 我们是用二分法的思维来试!首先我们一次跳2048页,从第一页,依次试了1,2048,4097等页. <coolcode> page: 1  is not max page page: 2049  is not max page page: 4097  is not max page page: 6145  is … 继续阅读

发表在 python | 标签为 , , | 留下评论

hyer开发笔记之:HTMLParser不支持中文问题

在开发hyer的过程中,我发现beautifulsoup解析中文网页总是有问题。于是乎,我决定用tidy来在beautifulsoup之前做一个fix.没想到tidy的python极其不雅,首先tidy的强大在python版的uTidylib也完全感觉不到了,而且安装的时候时候还有错误。 等tidy问题终于修正之后,发现大量的网页已经能用美味的汤[beautifulsoup]来解决了,但是仍然有一部分网页 不行。 最终经过跟踪发现是在这里:(/usr/lib/python2.6/HTMLParser.py): <coolcode> attrfind = re.compile( r’\s*([a-zA-Z_][-.:a-zA-Z_0-9]*)(\s*=\s*’ r’(\’[^\']*\’|”[^"]*”|[-a-zA-Z0-9./,:;+*%?!&$\(\)_#=~@]*))?’) </coolcode> 正则表达式的第二行在遇到形如 <coolcode> alt=我是中国人 height=60 src=’images/go.gif’> </coolcode> 这样内容为中文不加引号的属性时无法处理。于是稍做修改(我是个大老粗,改得很偷懒,但是好像很管用) <coolcode> attrfind = re.compile( r’\s*([a-zA-Z_][-.:a-zA-Z_0-9]*)(\s*=\s*’ r’(\’[^\']*\’|”[^"]*”|[^\s^\'^\"]*))?’) </coolcode> 就能解析中文属性了。 本文由蝌蚪安尼友情赞助.相关文章社区全文检索引擎Hyper Estraier 学习笔记[3]社区全文检索引擎Hyper Estraier 学习笔记[2]请大家悄悄地推一份工作,谢谢~Win下居然没有一个好用的终端工具我创建了一个开源项目社区全文检索引擎Hyper Estraier 学习笔记刨根问底学Blog(很不错的一篇入门文章)FireFox与IE 之争今天很开心

发表在 hyer, python | 标签为 , , | 3 条评论

pythoni学习笔记之:中文乱码相关

我在python中使用的碰到的中文相关的问题有: 1.执行是出现“SyntaxError: Non-ASCII character ‘\xe6′ in file 2.py on line 2, but no encoding declared; “类似的错误 。 2.打印时或是将输出重定向时结果是乱码。 搜集了一些相关资料: 1.可在文件首行加上: # -*- coding: UTF-8 -*- 2.可设置pythonq解析引擎的默认编码: import sys encoding=sys.getdefaultencoding() print encoding reload(sys) sys.setdefaultencoding("UTF-8") encoding=sys.getdefaultencoding() print encoding 3.可针对字符串解码再编码: print "有了你世界是不同".decode().encode("GBK") 本文由蝌蚪安尼友情赞助.

发表在 python | 6 条评论

beautiful Soup in Python

“美味的汤”是一个python的HTML/XML解板器,主要特性是: 1.美味的汤在你给出的标记不正确时不会阻赛。它尽可能地处理地和原文档近似。这样通常足够你收集信息。 2.美味的汤提供了少量几个方法(但却是python味道十足的方法)以足够你浏览,搜索,修改一棵解析树:一个能拼接出或是解析出你所要的的工具。你不需要为每个应用创建一个定制的解析器。 3.美味的汤能够自动将任何格式的输入换成Unicode,并在输出时转成UTF-8.除非文档没有指定编码而美味的汤又不能自动探测到这个编码。遇到这种情况你只需要指定原始编码就行了。 美味的汤解析你所给的任何东西,并且为你做遍历工作。你可以告诉它,”去找到所有链接”,或“找到所有带有一个叫externalLink的class的链接,或是”找到链接地址是foo.com的链接,或“找到表头是加粗文本的表格,并把这个文本返回给我”. 现在你可以处理那样设计很糟糕的网站的数据了。过去需要半天的工作现在有了美味的汤只需要几分钟了. 原始文档地址: http://www.crummy.com/software/BeautifulSoup/documentation.html 本文由蝌蚪安尼友情赞助.

发表在 python | 标签为 , | 3 条评论