随笔分类 -  python

摘要:1. Python编程速度技巧1.1. 最常见* 一个最常见的速度陷坑(至少是俺在没看到网上这篇介绍时陷进去过好些次的) 是: 许多短字串并成长字串时, 大家通常会用:切换行号显示1 shortStrs = [ str0, str1, ..., strN]2N+1个字串所组成的数列3 longStr = ''4 for s in shortStrs: longStr += s因为Python里字串是不可变的, 所以每次 longStr += s 都是将原 来的 longStr 与 str 拷贝成一个新字串, 再赋给longStr. 随着 longStr的不断增长, 所要拷贝的内 阅读全文
posted @ 2011-04-11 11:06 Capricorn.python 阅读(1488) 评论(1) 推荐(0)
摘要:http://chen-gengjia.iteye.com/admin/blogs/newadodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctypes:用来调用动态链接库DBUtils:数据库连接池django:一个WEB frameworkdocutils:用来写文档的dpkt:数据包的解包和组包MySQLdb:连接MySQL数据库的py2exe:用来生成windows可执行文件Pylons:我们领导推荐的web frameworkpysqlite2: 阅读全文
posted @ 2011-04-08 21:33 Capricorn.python 阅读(11290) 评论(0) 推荐(0)
摘要:昨天偶然帮韩小玲童鞋解决python的中文问题,修复了我的一个错误理解,首先感谢韩某提供宝贵的机会!处理中文,归结于解码编码,总的方针是,先用字符串自身的编码格式解码为unicode,然后从unicode再编码成你需要的格式,比如gb2312举个例子:s= '中文'直接print s 会报错,原因略我现在想把它用gbk的格式打印出来。首先,检查s的编码类型,python有个库,叫ch什么的,检测一下,比如说是gb2312格式的,则第一步,先解码为unicode:s.decode('gb2312') 或者 unicode(s,'gb2312')第二 阅读全文
posted @ 2011-04-07 14:43 Capricorn.python 阅读(705) 评论(2) 推荐(1)
摘要:工具:cProfile测试方法:目录下有1152个文件,分别用map、列表解析和生成器方法,删除所有文件。进行cpu时间对比。一.map函数方法defs():os.chdir('1')list=os.listdir('.')map(os.remove,list)print'done'if__name__=='__main__':cProfile.run('s()',)答案:0.053 cpu time.二.纯正的列表解析方法defs():os.chdir('1')list=os.listdir(&# 阅读全文
posted @ 2011-03-22 20:30 Capricorn.python 阅读(982) 评论(0) 推荐(0)
摘要:理解新概念Python V2.2 中引入了迭代器的思想。唔,这并不十分正确;这种思想的“苗头”早已出现在较老的函数 xrange() 以及文件方法 .xreadlines() 中了。通过引入 yield 关键字,Python 2.2 在内部实现的许多方面推广了这一概念,并使编程定制迭代器变得更为简单( yield 的出现使函数转换成生成器,而生成器反过来又返回迭代器)。 迭代器背后的动机有两方面。将数据作为序列处理通常是最简单的方法,而以线性顺序处理的序列通常并不需要都同时实际 存在。 x*() 前兆提供了这些原理的清晰示例。如果您想对某操作执行成千上万次,那么执行您的程序可能要花些时间,但该 阅读全文
posted @ 2011-03-18 20:07 Capricorn.python 阅读(1473) 评论(0) 推荐(1)
摘要:Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。random.randomrandom.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0random.uniform random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: a <= n <= b。如果 a <b, 则 b <= n <= a。printrandom.uniform(10,20 阅读全文
posted @ 2011-03-18 13:40 Capricorn.python 阅读(319749) 评论(7) 推荐(29)
摘要:什么时候使用序列化?比如,我有一个很复杂的数据结构(类似字典,key和value是python的基本对象),我想把它存在数据库中。你准备怎么做,一项项拆分然后分别存储吗?答案,no。现在可以用序列化来做,把这个数据结构直接转化成字节串,存在数据库中。恢复时,直接取出这个字节串,恢复字符串即可。常用的是marshal和cPickle模块。他们都是使用dump,dumps,load和loads方法。有专业测试说,marshal的速度要比cPickle快,但是也不尽然,cPickle是C写的,也超快,而且如果存在较长的字符串时,cPickle反而更快。同时,cPickle可以与gzip一同使用,转换 阅读全文
posted @ 2011-03-15 22:10 Capricorn.python 阅读(4736) 评论(0) 推荐(0)
摘要:寻求很久,要找一本适合自己的python进阶书籍今天找到了,《python cookbook》之所以选择这本书,一是,每章内容足以整理基础知识,二,在每个细节中提供良好的使用建议,修边幅,三,注重简洁高效的python风格,四,知识点完全enough于日常工作。 阅读全文
posted @ 2011-03-11 10:11 Capricorn.python 阅读(4311) 评论(0) 推荐(0)
摘要:首先,DNS放大攻击,简单解释有两点:1.伪造源IP为其他人的ip地址2.被请求的记录,要求比较大,比如TXT格式,4000KB在A机器上,向DNS发送查询那个TXT的记录,并伪造成别人的ip,即可理解为DNS放大攻击。可以用python的scapy模拟:from scapy import *a = IP(dst='10.32.8.11',src='10.32.132.85') #10.32.132.85即为伪造的源ipb = UDP(dport='53')c = DNS(id=1,qr=0,opcode=0,tc=0,rd=1,qdcount=1,ancount=0,nscount=0,ar 阅读全文
posted @ 2011-01-24 18:01 Capricorn.python 阅读(4720) 评论(0) 推荐(1)
摘要:首先,了解一点,发一封信,包含smtp协议部分和信体部分。协议部分,比如sent from,rcpt to等命令信体中则才包含from,to,cc等头部。比如我们用foxmail收到一封信,你在foxmail里看到的这封信的所有内容就是信体部分,包含发件人,收件人,抄送,标题等。当一封信有多个收件人,包含to,cc和bcc,smtp协议首先会把所有的收件人逐个进行rcpt to,然后信体部分包含to和cc的头部(注意不包含bcc的头部,这也是为什么信体中看不到暗送收件人的原因)只有被rcpt to的收件人才会收到信件。举个例子sender:send@dyang.comto1:to1@dyang 阅读全文
posted @ 2011-01-19 13:56 Capricorn.python 阅读(4914) 评论(0) 推荐(0)
摘要:用python也有小两年了,不是开发,所以代码应该没那么精湛。但是经常会写测试脚本和小工具。在积累了大量的库以后,开始把重点放在提高python效率的方法,养成好的习惯。因为是刚刚开始关注,所以不断补充吧,以便将来随时查看。一.原则类1.把range全部换成xrange2.生成器,如 list=(item for item in fp)3.利用psyco库,提高函数和类的运行效率。4.字符串拼接:尽量少用“+”的方式,而采用''.join ,还有"%s"%i这样赋值的手段5.函数的开销很大。尽量把循环放在函数内进行。而不要让每次迭代都调用函数。6.“前提工作 阅读全文
posted @ 2010-11-23 14:52 Capricorn.python 阅读(9658) 评论(0) 推荐(1)
摘要:1.1. 最常见一个最常见的速度陷坑(至少是俺在没看到网上这篇介绍时陷进去过好些次的) 是: 许多短字串并成长字串时, 大家通常会用:Toggle line numbers 1 shortStrs = [ str0, str1, ..., strN] 2 #N+1个字串所组成的数列 3 longStr = ” 4 for s in shortStrs: longStr += s因为Py... 阅读全文
posted @ 2010-11-23 10:55 Capricorn.python 阅读(6349) 评论(1) 推荐(2)
摘要:不断更新,便于学习过程中不断总结。排序不分优先级.1.os 和操作系统有关2.time 与时间有关3.pcap 抓包4.dpkt 解包和组包5.pymssql 进行mssql数据库操作6.cProfile 自己debug脚本性能时用的,可以精确快速计算运行时间7.urllib2 最早接触的库之一,跟HTTP有关8.httplib 与HTTP有关9.smtplib SMTP的lib10.poplib... 阅读全文
posted @ 2010-11-15 11:00 Capricorn.python 阅读(9550) 评论(0) 推荐(1)
摘要:http://www.example-code.com/python/default.asp这个我必须记下来。慢慢研究。这个模块提供的功能真的很多 阅读全文
posted @ 2010-10-30 22:21 Capricorn.python 阅读(4131) 评论(0) 推荐(0)
摘要:1.KMP算法代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--defcompute_prefix_function(p):m=len(p)pi=[0]*mk=0forqinrange(1,m):whilek>0andp[k]!=p[q]:k... 阅读全文
posted @ 2010-10-28 23:32 Capricorn.python 阅读(4582) 评论(6) 推荐(0)
摘要:这个脚本是运行tasklist,取出进程的pid监控,结果存到python自带的sqlite3数据库中。本来呢,打算service和pid同时监控,但对于我的任务来说,pid不存在了,service肯定stop,所以我只监控了pid。当然,我也给出了如何监控service status的代码,需要安装pywin32库。1.sCheck.py 监控主程序代码 Code highlighting pr... 阅读全文
posted @ 2010-09-30 17:51 Capricorn.python 阅读(6263) 评论(1) 推荐(0)
摘要:Python SQLITE数据库是一款非常小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,所有的维护都来自于程序本身。它使用一个文件存储整个数据库,操作十分方便。它的最大优点是使用方便,功能相比于其它大型数据库来说,确实有些差距。但是性能表现上,SQLITE并不逊色。麻雀虽小,五脏俱全, sqlite 实现了多数 sql-92 的标准,比如说 transaction 、 trigger 和... 阅读全文
posted @ 2010-09-25 16:52 Capricorn.python 阅读(5112) 评论(2) 推荐(3)
摘要:在做多线程的一个例子时,里面用到了win32,结果运行时出错:Exception in thread Thread-2:Traceback (most recent call last): File "C:\Python25\lib\threading.py", line 486, in __bootstrap_inner self.run() File "C:\Python25\lib\thre... 阅读全文
posted @ 2010-07-02 16:37 Capricorn.python 阅读(5331) 评论(0) 推荐(0)
摘要:因为我现在每天的第一项工作,就是整理出压力测试的报告,自动化工具会在每天早上准时把各种日志和趋势图发到我的指定邮箱。然后我要把44张png图片拍到excel中。44张图片分为两类,一类CPU性能,一类各种MEM性能。以前每人考虑过用脚本来做,所以都是手工排版的,我昨天第一天接触,想到了win32com应该可以做到插入图片。我计算好,每张图片原始插入后的原始大小是(446,177),然后我打算所有图... 阅读全文
posted @ 2010-06-16 12:05 Capricorn.python 阅读(3759) 评论(0) 推荐(0)
摘要:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--1#!/usr/bin/envpython2#coding=utf-83#注意修改get_mem函数中,splite取的列要对应你的目标4importos5importsys67defget_Pid(... 阅读全文
posted @ 2010-06-14 12:19 Capricorn.python 阅读(2609) 评论(0) 推荐(0)