Archive for python

真正使用多线程进行程序的编写,以前学习时的笔记《<a title="Permanent Link to python threading模块学习join()" rel="bookmark" href="http://0x55aa.sinaapp.com/%e7%ae%97%e6%b3%95-%e7%bc%96%e7%a8%8b/494.html">python threading模块学习join()</a>》,现在用在实践上。 写代码在发现对他不熟悉的时候,总是缩手缩脚的,不知道为什么也不去尝试一下。过分依赖搜索引擎,自从上次写golang读取id3信息的那个程序开始,学会了用英文关键字检索信息,会检索到很多有用的信息,像<cite>stackoverflow</cite>上的回答。 先介绍一下功能:多线程生成密码,多线程提交数据。密码是排列组合生产的,五个元素全排列5!,这个密码长度是5。5个元素,密码长度为2,5×4  。适合那种通用型密码的破解。 程序代码: <pre lang="python"># encoding:utf-8 # #author:0x5

Continue

py2exe可以将python程序打包成exe,方便没有python环境的用户使用。 在目录下建立py文件setup.py写入代码: <pre lang="python">#-*- coding:utf-8 -*- from distutils.core import setup import glob import py2exe,sys,os options = {"py2exe": {"dll_excludes": ["MSVCP90.dll"], "compressed": 1, #压缩 "optimize": 2, #"ascii": 1, #"includes":includes, "bundle_files": 1 #所有文件打包成一个exe文件 } } } setup(windows=[{"script": "mp3.py","icon_resour

Continue

很简单的代码,记录一下。 <pre lang="python"> import Image image = Image.open('a.jpg') import cStringIO buf = cStringIO.StringIO() image.save(buf, image.format,quality=75) data = buf.getvalue() a = u.writeFile('/this/logo.jpg',data,True) </pre> 应用在 使用django,用户上传图片后,将图片转存到别的服务器。但是转存需要对图片进行处理,但是quality设定的保存,不知道可不可以在不是image.save()的时候。写的这个是保存时放到内存,然后直接提交到图片服务器。

Continue

在做f4ck上的游戏时,第三题需要生成字典的,就到网上搜索现成的排列组合的例子,找个一个,(链接找不到了)。那篇文章用了很多种方法,并比较了执行时间,很好。我找了一种感觉很好的,记录一下。 字典生成,共五位,已知四个字母,然后另一位是数字。这五位排列组合,共有5!*10中排列。 先上算法: <pre lang="python"> #-*-coding:utf-8-*- str1 = 'f9ck' def permute(seq): new_list = [] seqn = [seq.pop()] while seq: newseq = [] new = seq.pop() #print "seq:",seq,'seqn', seqn ,'new', new for i in range(len(seqn)): item = seqn[i] for j in range(len(item)+1):

Continue

在抓取网页数据进行html分析的时候,以前一直使用HTMLParser,文档:http://docs.python.org/library/htmlparser.html 自从知道HTMLParser后,一直感觉他就是一个神器,分析简单快捷,几行代码搞定了。 这次在总页面抓取使用HTMLParser,没有问题,很快实现结果。但是在获取详细信息的页面时候,开始提示错误了:HTMLParseError: malformed start tag,各种google,其中有一大部分的结果是关于Beautiful Soup的,于是我了解了Beautiful Soup。HTMLParser还有一个缺点,对编码的处理也不是很友好。 开始安装的Beautiful Soup最新版本4.4.1,有问题,也是报这个错误。由于前面搜索知道换成版本3.07a就好了,直接又换了一个版本。先说官网地址:http://www.crummy.com/software/BeautifulSoup/,Beautiful Soup 3.07a下载地址:http://www.crummy.com/software/Be

Continue

这是一篇转载文章,原文链接:http://www.jb51.net/article/17560.htm 刚写了一个汉字的图片验证码,被错误提示折腾了。看到这篇文章便分享。 报错“UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)” 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。 decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码。 encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码。 因此,转码的

Continue

看了oschina上的两个代码,受益匪浅。其中对join()方法不理解,看python官网文档的介绍: join([timeout]):等待直到进程结束。这将阻塞正在调用的线程,直到<strong>被</strong>调用join()方法的线程结束。(好难翻译,应该是这个意思) 哈哈,这个易懂。 <span style="color: #ff0000;">join方法,如果一个线程或者一个函数在执行过程中要调用另外一个线程,并且待到其完成以后才能接着执行,那么在调用这个线程时可以使用被调用线程的join方法。</span> <pre lang="python">#-*- encoding: gb2312 -*- import string, threading, time def thread_main(a): global count, mutex # 获得线程名 threadname = threading.currentThread().getName() for x in xrange(0, int(a)):

Continue

开始看了一大堆的base64的资料,准备用python写代码的时候发现,这么简单,根本不需要知道算法。。。。 用了python会不会越来越懒。T_T base64模块真正用的上的方法只有8个,分别是encode, decode, encodestring, decodestring, b64encode,b64decode, urlsafe_b64decode,urlsafe_b64encode。 他们8个可以两两分为4组,encode,decode一组,专门用来编码和 解码文件的,也可以对StringIO里的数据做编解码; encodestring,decodestring一组,专门用来编码和解码字符串; b64encode和b64decode一组,用来编码和解码字符串,并且有一个替换符号字符的功能。这个功能是这样的:因为base64编码后的字符除 了英文字母和数字外还有三个字符 + / =, 其中=只是为了补全编码后的字符数为4的整数,而+和/在一些情况下需要被替换的,b64encode和b64decode正是提供了这样的功能。至于什 么情况下+和/需要被替换,最常

Continue

找到几个零碎的学习资料: http://www.cnblogs.com/holbrook/tag/python/ http://www.cnblogs.com/tqsummer/archive/2011/01/25/1944771.html http://www.cnblogs.com/twelfthing/articles/2095502.html Python实现多线程下载学习代码 http://www.oschina.net/code/snippet_70229_2407 官网文档: http://docs.python.org/library/thread.html http://docs.python.org/library/threading.html

Continue

几天前的事了,断断续续也写了几天。用了wxpython写的界面,在ubuntu下写的,在xp下编译成功,win7测试成功。 为防止工具乱用,只支持一个贴吧。代码很多是参考别人的写法,省去了自己阅读javascript的时间,所以总体比较简单,借机大体学习了wxpython,很强大,就是用py2exe编译出来的文件太大了。可能是自己没有优化吧。 现在写程序发现总是调用别人写的代码,神马时候能有水平写个接口让别人用一下T_T..

Continue