經歷移植jinja2到python3的痛苦之后,我把項目暫時放一放,因為我怕打破python3的兼容。我的做法是只用一個python2的代碼庫,然后在安裝的時候用2to3工具翻譯成python3。不幸的是哪怕一點點的改動都會打破迭代開發。如果你選對了python的版本,你可以專心做事,幸運的避免了這個問題。來自MoinMoin項目的ThomasWaldmann通過我的python-modernize跑jinja2,并且統一了代碼庫,能同時跑python2,
系統 2019-09-27 17:49:06 1884
最近在做cocos2d-x的簡明配置,發現有的朋友的文本編輯器,自動將\r\n截斷成\n,(在unix上換行使用\n,windows上,換行使用的是\r\n)于是,寫了這個腳本,希望對一些朋友有所幫助,不用一行一行去改importosdefreplace(filePath,w2u):try:oldfile=open(filePath,"rb+")#這里必須用b打開path,name=os.path.split(filePath)newfile=open(p
系統 2019-09-27 17:48:49 1884
在Python3.x的世界里,cmp函數沒有了。那么sorted,min,max等需要比較函數作為參數的函數該如何用呢?以min函數的定義為例,有兩種重載形式:單參數(一個迭代器):復制代碼代碼如下:min(iterable[,key=func])->value多參數(多個待比較內容):復制代碼代碼如下:min(a,b,c,...[,key=func])->value本文主要討論key=func參數的使用。舉例說明吧:1.自定義對象的比較我定義了一個類te
系統 2019-09-27 17:48:44 1884
判斷是否xx開始使用startswith示例代碼:String="12345上山打老虎"ifstr(String).startswith('1'):#判斷String是否以“虎”結尾print("有老虎")else:print("沒老虎")執行結果:有老虎判斷是否xx結尾使用endswith示例代碼1:String="12345上山打老虎"ifstr(String).endswith('虎'):#判斷String是否以“虎”結尾print("有老虎")el
系統 2019-09-27 17:48:27 1884
Pythonlist內置sort()方法用來排序,也可以用python內置的全局sorted()方法來對可迭代的序列排序生成新的序列。1)排序基礎簡單的升序排序是非常容易的。只需要調用sorted()方法。它返回一個新的list,新的list的元素基于小于運算符(__lt__)來排序。>>>sorted([5,2,3,1,4])[1,2,3,4,5]你也可以使用list.sort()方法來排序,此時list本身將被修改。通常此方法不如sorted()方便,
系統 2019-09-27 17:47:37 1884
類代碼:#-*-coding:gbk-*-importosclassTABFILE:def__init__(self,filename,dest_file=None):self.filename=filenameifnotdest_file:self.dest_file=filenameelse:self.dest_file=dest_fileself.filehandle=Noneself.content=[]self.initflag=Falsesel
系統 2019-09-27 17:47:28 1884
目的是能使用Python進行rtmp推流,方便在h264幀里加入彈幕等操作。librtmp使用的是0.3.0,使用樹莓派noir官方攝像頭適配的。通過wireshark抓ffmpeg的包一點點改動,最終可以在red5和斗魚上推流了。沒怎么寫過python,有不恰當的地方請包涵。上代碼:#--coding:utf-8--#http://blog.csdn.net/luhangleiimportpicameraimporttimeimporttraceback
系統 2019-09-27 17:47:12 1884
url組成:協議域名端口(如果url里面沒有端口,那么采用默認端口)文件路徑文件名參數錨點HTTP:超文本傳輸協議端口:80工作原理:請求響應模型無連接無狀態http請求包含哪些內容請求行(請求方法[get、post]url協議版本)請求頭(每個參數以鍵值對形式存在)空行請求數據(請求參數)請求頭參數1、user-agent:請求發起者的身份信息User-Agent:Mozilla/5.0(WindowsNT6.1;Win64;x64)AppleWebKi
系統 2019-09-27 17:46:58 1884
#堆排序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 1884
保證只能運行一個腳本實例,方法是程序運行時監聽一個特定端口,如果失敗則說明已經有實例在跑。使用裝飾器實現,便于重用復制代碼代碼如下:importfunctoolsdefjust_one_instance(func):'''裝飾器如果已經有實例在跑則退出復制代碼代碼如下::return:'''@functools.wraps(func)deff(*args,**kwargs):importsockettry:#全局屬性,否則變量會在方法退出后被銷毀globa
系統 2019-09-27 17:45:27 1884