使用python效率太高了,几句话就可以实现不错的功能,共享一下我收集测试有用的代码块(tips

软件和网站开发以及相关技术探讨
回复
Neptune
帖子: 13
注册时间: 2006-08-02 23:33

使用python效率太高了,几句话就可以实现不错的功能,共享一下我收集测试有用的代码块(tips

#1

帖子 Neptune » 2007-01-08 11:18

代码: 全选

#!/usr/bin/env python
# -*- coding: gbk -*-       
                            


#####打印执行程序块的范围
import re
file = open(__file__)
linenum = start = end = 0
segments = []
rule = re.compile(r'^\s*(#.*)?$')               #无效行:空行或者注释行
for line in file:                               
  linenum += 1                                  
  if not rule.match(line):                      #如果是有效行
    if start == 0:                              
      start = end = linenum                     
    else:                                       
      end += 1                                  
  else:                                         
    if start != 0:                              
      segments.append((start,end))              
      start = end = 0                           
file.close()                                    
spandur = 2                                     #如果中间跨spandur个无效行,仍然认为是一个程序块
spanseg = []                                    
if len(segments) >= 2:
  prestart,preend = segments.pop(0)
  while len(segments) > 0:
    curstart,curend = segments.pop(0)
    if curstart - preend <= spandur:
      prestart,preend = prestart,curend
    else:
      spanseg.append((prestart,preend))
      prestart,preend = curstart,curend
  spanseg.append((prestart,preend))
print 'lines executed:',spanseg[2:]  
print '******************************************************' 

##### 添加脚本执行结束必须执行的动作
import sys
def theend():
    print '******************************************************'
sys.exitfunc = theend

###删除UltraEdit的.bak文件
#import os
#for subdir,itsSubdirs,itsFiles in os.walk('/'):            #os.walk递归遍历一个目录,返回的元素为(子目录名,该子目录的直接子目录list,该子目录直接拥有的文件list)的迭代器
#  for file in itsFiles:
#    mainname,extname = os.path.splitext(file)
#    main1,main2 = os.path.splitext(mainname)
#    if extname == '.bak' and main2 in ['.py','.txt','.java']:
#      filepath = os.path.join(subdir,file)
#      print 'Delete',filepath
#      os.remove(filepath)




      把这段代码防到源文件头,然后下面就可以收集、测试代码段,结束后就使用#把整块注释掉,控制台会打出那些代码块被执行,当你有几千行代码后也可以知道那些忘记注释被执行了,上面注释掉的代码可以删除ue创建的临时.bat文件(如果你使用ue编译器的话)
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#2

帖子 eexpress » 2007-01-08 11:29

bash效率更高。
● 鸣学
Neptune
帖子: 13
注册时间: 2006-08-02 23:33

我是指的学习效率

#3

帖子 Neptune » 2007-01-08 11:43

最近一个月都在玩它,本来想能一下ruby的,后来无意间看了本python书,一下子吸引住了,已经写了4-5k的code了,就是那种爽快感:语言本身提供了很好的想法和思想,使用它思考,无需怎样调试,然后还就成了。我喜欢这种称手的工具,象瑞士军刀、全套很好用的厨房用具之类的东西
头像
gnix_oag
帖子: 1994
注册时间: 2005-05-19 18:38
来自: 湖南永州
联系:

#4

帖子 gnix_oag » 2007-01-08 12:00

eexpress 写了:bash效率更高。
bash可是用其它的程序的
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#5

帖子 eexpress » 2007-01-08 13:17

是啊。但主要是借用系统的那些超强的小命令啊。站巨人的头上。
● 鸣学
回复