1. 程式人生 > >python_製作自己的函式庫

python_製作自己的函式庫

在寫程式的時候 , 每次總會寫一些重複的函式, 因此有必要把他們收集一下

再之後的使用中,可以直接使用。

1.自定義log列印函式:

#自定義log 列印函式, 以數字定義log 級別
  def my_log(log_leavel,msg):
	#import time
	#0:不列印 		1:main		2:error		3:warning		
	log= {	0:lambda:no_log(msg),
			1:lambda:main_log(msg), 
			2:lambda:error_log(msg), 
			3:lambda:warning_log(msg)} 
	def no_log(msg):
		print 'log none'
	def main_log(msg):
		print u'main: %s: %s' % (time.strftime('%Y-%m-%d_%H-%M-%S'), msg) 
	def error_log(msg):
		print u'error: %s: %s' % (time.strftime('%Y-%m-%d_%H-%M-%S'), msg) 
	def warning_log(msg):	
		print u'warning:  %s: %s' % (time.strftime('%Y-%m-%d_%H-%M-%S'), msg)
	return log[log_leavel]()

2.獲取網頁內容

#獲取頁面內容  
def get_html(url):  
	#import urllib2  
	#import HTMLParser   
	print u'start crawl %s ...' % url  
	headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.2; rv:16.0) Gecko/20100101 Firefox/16.0'}  
	req = urllib2.Request(url=url,headers=headers)  
	try:  
		html = urllib2.urlopen(req).read().decode('utf-8')  
		html=HTMLParser.HTMLParser().unescape(html)#處理網頁內容, 可以將一些html型別的符號如" 轉換回雙引號    
		#html = html.decode('utf-8','replace').encode(sys.getfilesystemencoding())#轉碼:避免輸出出現亂碼  
	except urllib2.HTTPError,e:  
		print u"連線失敗,錯誤原因:%s " % e.code  
		return None  
	except urllib2.URLError,e:  
		if hasattr(e,'reason'):  
			print u"連線失敗,錯誤原因:%s " % e.reason  
			return None  
	return html  





3.列印時間函式

將其作為裝飾器,計算函式執行時間

def print_run_time(func):
    #import time     
    def wrapper(*args, **kw):    
        local_time = time.time()    
        func(*args, **kw)   
        print 'current Function [%s] run time is %.2f' % (func.__name__ ,time.time() - local_time)    
    return wrapper


後續不定時補充。。。。