python_製作自己的函式庫
阿新 • • 發佈:2018-12-30
在寫程式的時候 , 每次總會寫一些重複的函式, 因此有必要把他們收集一下
再之後的使用中,可以直接使用。
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
後續不定時補充。。。。