PIL圖片操作讀取圖片img=Image.open(“a.jpg”)顯示圖片im.show()#im是Image對象,im是numpy類型,通過Image.fromarray(nparr,mode='RGB')函數轉換為Image對象圖片的size(width,height)=img.size圖片的模式mode=img.mode截區域img_c=img.crop(x1,y1,x2,y2)裁剪圖片img=img.resize((size,size),Imag
系統 2019-09-27 17:48:58 1848
文章目錄獲取當前決定路徑os.getcwd()獲取路徑下的所有文件名和路徑名os.listdir()創建文件夾os.makedirs()刪除文件夾os.remove()獲取文件的絕對路徑os.path.abspath("init.py")判斷指定路徑或者文件是否存在os.path.exists()將文件路徑和文件組成一個完成的路徑os.ptah.join()獲取當前決定路徑os.getcwd()paths=os.getcwd()print(paths)#D
系統 2019-09-27 17:48:26 1848
最近被多線程給坑了下,沒意識到類變量在多線程下是共享的,還有一個就是沒意識到內存釋放問題,導致越累越大1.python類變量在多線程情況下的是共享的2.python類變量在多線程情況下的釋放是不完全的3.python類變量在多線程情況下沒釋放的那部分內存是可以重復利用的importthreadingimporttimeclassTest:cache={}@classmethoddefget_value(self,key):value=Test.cache.
系統 2019-09-27 17:48:22 1848
Ruby和Python太相似了,取舍大部分都是個人喜好上的原因。比如我就覺得Python的“Thereisonlyonewaytodoit.”比Ruby的“Therearemanywaystodoit.”要好,這不光是考慮團隊協作的問題,更重要的是自己能很快明白自己三個月前寫的沒有任何注釋的代碼是在干什么。當然也有很多人覺得自由和靈活要比可讀性來的重要,所以我說這個是個人喜好的原因。客觀上的Ruby比Python的優勢我想到的有這么幾個:Block應該是語
系統 2019-09-27 17:48:04 1848
因為Python是自帶文檔,可以通過help函數來查詢每一個系統函數的用法解釋說明。一般來說,關鍵的使用方法和注意點在這個系統的文檔中都說的很清楚。我試圖在網上找過系統文檔的中文版的函數功能解釋,但是都沒有找到,所以我決定將就使用英文版的系統自帶的函數解釋來學習。如果你想進行Tkinter和wxPython編程,想要知道一般的widget的使用方法和屬性介紹,英文又不是太好的話,我推薦你,你可以去看看《Python與Tkinter編程》這本書,里面392頁
系統 2019-09-27 17:47:58 1848
importosimportsysimportstring#以指定模式打開指定文件,獲取文件句柄defgetFileIns(filePath,model):print("打開文件")print(filePath)print(model)returnopen(filePath,model)#獲取需要處理的文件defgetProcFile(path):returnos.listdir(path)#判斷是否滿足某個條件,如果滿足則執行defisTrue(outF
系統 2019-09-27 17:47:04 1848
PythonSocket模塊中包含一些有用IP轉換函數,說明如下:socket.ntohl(x)//類似于C語言的ntohl(x)把32位正整數從網絡序轉換成主機字節序。socket.ntohs(x)//類似于C語言的ntohs(x)把16位正整數從網絡序轉換成主機字節序。socket.htonl(x)//類似于C語言的htonl(x)把32位正整數從主機字節序轉換成網絡序。socket.htons(x)//類似于C語言的htons(x)把16位正整數從主
系統 2019-09-27 17:46:35 1848
裝飾器基本概念大家都知道裝飾器是一個很著名的設計模式,經常被用于AOP(面向切面編程)的場景,較為經典的有插入日志,性能測試,事務處理,Web權限校驗,Cache等。Python語言本身提供了裝飾器語法(@),典型的裝飾器實現如下:@function_wrapperdeffunction():pass@實際上是python2.4才提出的語法糖,針對python2.4以前的版本有另一種等價的實現:deffunction():passfunction=func
系統 2019-09-27 17:45:57 1848
#堆排序defheap_sort(arr):root=len(arr)//2-1while(root>=0):heap_adjust(arr,root,len(arr)-1)root=root-1#此時生成的大頂堆,滿足每個根節點為子樹中最大,因此,之后只需要對最頂的子樹進行調整i=len(arr)-1whilei>=0:arr[0],arr[i]=arr[i],arr[0]heap_adjust(arr,0,i-1)i=i-1defheap_adjust
系統 2019-09-27 17:45:50 1848
保證只能運行一個腳本實例,方法是程序運行時監聽一個特定端口,如果失敗則說明已經有實例在跑。使用裝飾器實現,便于重用復制代碼代碼如下:importfunctoolsdefjust_one_instance(func):'''裝飾器如果已經有實例在跑則退出復制代碼代碼如下::return:'''@functools.wraps(func)deff(*args,**kwargs):importsockettry:#全局屬性,否則變量會在方法退出后被銷毀globa
系統 2019-09-27 17:45:27 1848