引入:Python中有個logging模塊可以完成相關(guān)信息的記錄,在debug時用它往往事半功倍一、日志級別(從低到高):DEBUG:詳細(xì)的信息,通常只出現(xiàn)在診斷問題上INFO:確認(rèn)一切按預(yù)期運行WARNING:一個跡象表明,一些意想不到的事情發(fā)生了,或表明一些問題在不久的將來(例如。磁盤空間低”)。這個軟件還能按預(yù)期工作。ERROR:更嚴(yán)重的問題,軟件沒能執(zhí)行一些功能CRITICAL:一個嚴(yán)重的錯誤,這表明程序本身可能無法繼續(xù)運行注:這5個等級,也分別對
系統(tǒng) 2019-09-27 17:54:25 1965
解決多版本同時存在的pip安裝模塊如果同時存在Python2和Python3版本,則需要通過python-mpipinstall的方式給指定的Python安裝模塊。安裝模塊超時,更換安裝源當(dāng)安裝模塊超時時可以通過修改超時時間的方式來進行解決,也可以通過修改安裝源的方式解決。修改超時時間pip--default-timeout=100installnumpy通過設(shè)置臨時安裝源的方式pipinstallnumpy-ihttps://pypi.doubanio.
系統(tǒng) 2019-09-27 17:54:25 1965
一些討論Python中使用配置文件的最佳實踐Python中使用配置文件的最好方法Python符號常量多種配置文件方案對比我的建議1.排除yamlyaml不是一個好主意,因為需要給項目引入額外的依賴。首先排除它,除非是你的個人項目,或者你的項目已經(jīng)引入了這個package。2.使用setting.py如果你只是需要配置一些全局的符號常量(symbolicconstants),參考Django的做法,使用setting.py,參見:https://github
系統(tǒng) 2019-09-27 17:54:23 1965
如下所示:classbcolors:HEADER='\033[95m'OKBLUE='\033[94m'OKGREEN='\033[92m'WARNING='\033[93m'FAIL='\033[91m'ENDC='\033[0m'defdisable(self):self.HEADER=''self.OKBLUE=''self.OKGREEN=''self.WARNING=''self.FAIL=''self.ENDC=''Tousecodeliket
系統(tǒng) 2019-09-27 17:54:07 1965
從我開始學(xué)習(xí)python的時候,我就開始自己總結(jié)一個python小技巧的集合。后來當(dāng)我什么時候在StackOverflow或者在某個開源軟件里看到一段很酷代碼的時候,我就很驚訝:原來還能這么做!當(dāng)時我會努力的自己嘗試一下這段代碼,直到我懂了它的整體思路以后,我就把這段代碼加到我的集合里。這篇博客其實就是這個集合整理后一部分的公開亮相。如果你已經(jīng)是個python大牛,那么基本上你應(yīng)該知道這里面的大多數(shù)用法了,但我想你應(yīng)該也能發(fā)現(xiàn)一些你不知道的新技巧。而如果你
系統(tǒng) 2019-09-27 17:53:38 1965
classA:def__init__(self,info={}):self.info=infodef__getattr__(self,item):returnself.info[item]a=A()a.age=123print(a.age)a.name=123print(a.name)a.xis=123print(a.xis)print(a.__dict__)
系統(tǒng) 2019-09-27 17:53:25 1965
基于TCP協(xié)議的套接字編程實現(xiàn)電話溝通為例,這里傳遞的是字符,可以自己嘗試去發(fā)送一個文件#服務(wù)端importsocket#1.符合TCP協(xié)議的手機server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#TCP#2.綁定手機號一個服務(wù)器,我們自己的電腦作為服務(wù)器的話,用自己的IP地址server.bind(('127.0.0.1',8000))#127.0.0.1代表本地#server.bind(('1
系統(tǒng) 2019-09-27 17:53:04 1965
生成器(generator)概念生成器不會把結(jié)果保存在一個系列中,而是保存生成器的狀態(tài),在每次進行迭代時返回一個值,直到遇到StopIteration異常結(jié)束。生成器語法生成器表達式:通列表解析語法,只不過把列表解析的[]換成()生成器表達式能做的事情列表解析基本都能處理,只不過在需要處理的序列比較大時,列表解析比較費內(nèi)存。>>>gen=(x**2forxinrange(5))>>>genat0x0000000002FB7B40>>>>forgingen:
系統(tǒng) 2019-09-27 17:52:55 1965
由于工作的需求,需要用python做一個類似網(wǎng)絡(luò)爬蟲的采集器。雖然Python的urllib模塊提供更加方便簡潔操作,但是涉及到一些底層的需求,如手動設(shè)定User-Agent,Referer等,所以選擇了直接用socket進行設(shè)計。當(dāng)然,這樣的話,需要對HTTP協(xié)議比較熟悉,HTTP協(xié)議這里就不做講解了。整個python的代碼如下:#!/usr/binenvpythonimportsockethost="www.baidu.com"se=socket.so
系統(tǒng) 2019-09-27 17:52:30 1965
在Python3.5(含)以前,字典是不能保證順序的,鍵值對A先插入字典,鍵值對B后插入字典,但是當(dāng)你打印字典的Keys列表時,你會發(fā)現(xiàn)B可能在A的前面。但是從Python3.6開始,字典是變成有順序的了。你先插入鍵值對A,后插入鍵值對B,那么當(dāng)你打印Keys列表的時候,你就會發(fā)現(xiàn)B在A的后面。不僅如此,從Python3.6開始,下面的三種遍歷操作,效率要高于Python3.5之前:forkeyin字典forvaluein字典.values()forkey
系統(tǒng) 2019-09-27 17:52:03 1965