![天深入理解python教程一高效開發(fā)環(huán)境與基礎(chǔ)_第1頁](http://file4.renrendoc.com/view/68629f39d218a4e647a9b1c1b285aacd/68629f39d218a4e647a9b1c1b285aacd1.gif)
![天深入理解python教程一高效開發(fā)環(huán)境與基礎(chǔ)_第2頁](http://file4.renrendoc.com/view/68629f39d218a4e647a9b1c1b285aacd/68629f39d218a4e647a9b1c1b285aacd2.gif)
![天深入理解python教程一高效開發(fā)環(huán)境與基礎(chǔ)_第3頁](http://file4.renrendoc.com/view/68629f39d218a4e647a9b1c1b285aacd/68629f39d218a4e647a9b1c1b285aacd3.gif)
![天深入理解python教程一高效開發(fā)環(huán)境與基礎(chǔ)_第4頁](http://file4.renrendoc.com/view/68629f39d218a4e647a9b1c1b285aacd/68629f39d218a4e647a9b1c1b285aacd4.gif)
![天深入理解python教程一高效開發(fā)環(huán)境與基礎(chǔ)_第5頁](http://file4.renrendoc.com/view/68629f39d218a4e647a9b1c1b285aacd/68629f39d218a4e647a9b1c1b285aacd5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
.Linux下SublimeText3和python語言環(huán)境Ubuntu下ipython二.字符串處理與特殊函數(shù)三面向?qū)ο骾mport語句From…import語句四.文件操作 五.應(yīng)用案例剖析為模塊增加一個PyMethodDefModuleMethods[]的數(shù)組八.web框架Django開發(fā) 多。高級語言,面向?qū)ο?可拓展,可移植,語法清晰,易,高效的原型。 名稱空間是一個很偉大的想法,讓我們做的更多。一.sublinetext3 : : Ubuntu下sudoapt-getinstall :~/workspace/chuanzhi/openlessons$print import savefile=open(" .html","w") tabimporturllib.request,os?pf='PackageControl.sublime-package'?ipp=sublime.installed_packages_path()?設(shè)置vim模式,SublimeTextVim"ignored_packages"vintagevintage刪除即ctrl+shift+pinstallpackageHTML/CSS/JSPrettifyPythonPEP8Autoformat 補齊 補齊 補齊 輸入Side PythonPEP8 "extensions":["extra","codehilite","toc","strikeout","smarty","subscript",sudopipinstall修改同一個變量,光標放在變量后,兩次查找ctrl+f插入注釋注釋當(dāng)前行屏-4列Alt+Shift+5等分4屏Alt+Shift+8垂直分屏-2屏Alt+Shift+9垂直分屏-3屏切換alt+Ctrl+Shift+P打開命令面板關(guān)閉當(dāng)前文件ctrl+f4cd~/home/xwp/.config/sublime-text-3/PackagesechoInstall...echoecho===PackageControlrm-rf"Packagegit /JustQyx/Sublime-Text-Package-Control.git"Packageecho===BlockCursorEverwhererm-rf"BlockCursorgit /ingshtrom/BlockCursorEverywhere.git"BlockCursor長整型無限大小的整數(shù),整數(shù)最后是一個大寫(或小寫)的L。浮點型浮點型由整數(shù)部分與小數(shù)部分組成,浮點型也可以使用科學(xué)表示(2.5e2=2.5x102=復(fù)數(shù)復(fù)數(shù)的虛部以字母J或j結(jié)尾。如布爾類型True獲取變量的數(shù)據(jù)類型type(var_name) ...在等待當(dāng)前語句的其他部指定編碼在文件開頭加入codingUTF-8#coding=utf-8>>>a=>>>printa>>>>>><class>>>b=>>>print>>>>>><class>>>a=>>>print">>> >>><class>>>c=>>>print>>>>>><class>>>b=>>>>>><class>>>print>>>print>>>>>>printTraceback(mostrecentcalllast):File"<stdin>",line1,in<module>NameError:name'a'isnotdefadd(x,y):z=x+yreturnzres=add(3,>>>print"%sis%dstoworld"%("tody",1)todyis1stoworld>>logfile=open('/tmp/mylog.txt','a')print>>logfile,'error'.defp_num():#結(jié)果:5defdefprint結(jié)果10.defprintnumnum=20printnum frommoduleimport*無法導(dǎo)入 a a a** a* a/b a//b a not aand aor aisb aisnotb a和b不是同一個對象bool==!=<>不等于(廢棄 >=<= a<< a>> a& a| a^ ifa>ifa>elifa==b:while判斷條件:var=whilevar==1:#該條件為true,循環(huán)將無限執(zhí)行下num=raw_input("Enteranumberprint"Youentered:%d",print"Goodfor ting_varinforletterin #Firstprint'CurrentLetter:',fruits=['banana','apple',forfruitin #Secondprint'Currentfruit:',count=whilecount<print(count,"islessthan5")count=count+1print(count,"isnotlessthanislessthanislessthanislessthanislessthanislessthanisnotlessthan通過切片[][:]得到子集,此操作同于字符串相關(guān)操作切片使用的基本樣式[下限:上限:步長]>>>aList=>>>aList[1]=>>>del 結(jié) 描len([1,2, [1,2,34,5, [1,2,3,4,5,6]['Hi!']* ['Hi!','Hi!','Hi!', 3in[1,2, forxin[1,2,3]:print 12 L=['spam','Spam',Python表達式結(jié)果描述 ['Spam' 序號函數(shù)cmp(list1, 序號方法 list.insert(index, range(1,5代表從1到5(不包含5)[1,2,3,4]range(1,5,2代表從1到5,間隔2(不包含5)[1,3]range(5代表從0到5(不包含5)[0,1,2,3,4]>>>foreachNumin...print>>>foreachNumin...print>>>mystr=>>>forcin...print.>>>aTuple=>>>aTuple[15真的不能修改呀>>>tup2=(1,2,3,4,5,6,7>>>print"tup2[1:5]:",>>>tup2[1:5]:(2,3,4,>>>tup3=tup2+>>>print(1,2,3,4,5,6,與字符串一樣,元組之間可以使用+號和*號進行運算。這就意味著他們可以組合和,運算后會生成一個新的元組Python表達式結(jié)果描述len((1,2,3)) (1,2,3)+(4,5,6) (1,2,3,4,5,6)連接['Hi!']*4['Hi!','Hi!','Hi!', 3in(1,2,3) forxin(1,2,3):print 12 因為元組也是一個序列,所以我們可以元組中的指定位置的元素,也可以截取索引中的一段元素.L=('spam','Spam','SPAM!')Python表達式結(jié)果描述 ('Spam' print'abc',-4.24e93,18+6.6j,'xyz'?x,y=1,2?print"Valueofx,y:",abc-4.24e+93(18+6.6j)xyzValueofx,y:12序號方法及描述1cmp(tuple1,2345元祖的示>>>tuple1=>>>tuple1[0](2,3)>>>tuple1[0][0]>>>Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>IndexError:tupleindexoutof>>>tuple1[0][1]>>>Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>IndexError:listindexoutof>>>tuple2=>>>[(2,3),(4,5),>>>tuple2[2]>>>Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:'int'objectisnot類型的python對象,如其他容器模型。字典元素用大括號{}包括.比如:>>>dict={'Alice':'2341','Beth':'9102','Cecil':>>>aDict=>>>forkeyin...printport80>>>aDict['port #如果有portkey,portdict{'Name''Zara''Age'7'Class''First'}?deldict['Name']?#刪除鍵是'Name'的條目 deldict >>>dict={'Name':'Zara','Age':7,'Name':>>>print"dict['Name']:",>>>dict['Name']:>>>dict={['Name']:'Zara','Age':>>>print"dict['Name']:",raceback(mostrecentcallFile"test.py",line3,in>>>dict={['Name']:'Zara','Age':TypeError:listobjectsare1cmp(dict1,1cmp(dict1,234序號函數(shù)及描述 radiansdict.get(key, 以列表返回可遍歷的(鍵,值) radiansdict.setdefault(key,和get()類似,但如果鍵不已經(jīng)存在于字典中,將會添加鍵并將值設(shè)為 printdict['one']#輸出鍵為'one'printdict[2]#輸出鍵為2的值printtinydict#輸出完整的字典printtinydict.keys(輸出所有鍵printtinydict.valuesint(x[,base]) long(x[,base]) float(x) complex(real[,imag]) str(x 將對象xrepr(x 將對象xeval(str tuple(s) 將序列s轉(zhuǎn)換為一個元組list(s) 將序列s轉(zhuǎn)換為一個列表chr(x) unichr(x ord(x hex(x oct(x 函 返回值(描述 返回數(shù)字的絕對值,如abs(-10)返回10 返回數(shù)字的上入整數(shù),如math.ceil(4.1)返回5cmp(x,y) 如果x<y返回-1,如果x==y返回0,如果x>y返回1 返回e的x次冪(ex),如math.exp(1)返回2.718281828459045 返回數(shù)字的絕對值,如math.fabs(-10)返回10.0 返回數(shù)字的下舍整數(shù),如math.floor(4.9)返回4 返回以10為基數(shù)的x的對數(shù),如math.log10(100)返回2.0max(x1,x2,...)返回給定參數(shù)的最大值,參數(shù)可以為序列。min(x1,x2,...) pow(x, x**yround(x 返回數(shù)字x的平方根,數(shù)字可以為負數(shù),返回類型為實數(shù),如math.sqrt(4)返回函數(shù)描述choice(seq)從序列的元素中隨機挑選一個元素,比如random.choice(range(10)),從0到9中隨機挑選一個整數(shù)。randrange([start,]stop[,step])從指定范圍內(nèi),按指定基數(shù)遞增的集合中獲取一個隨機數(shù),基數(shù)缺省值為1 uniform(x, 二.以及其他特殊字符。三引號的語法是一對連續(xù)的單引號或者雙引號(通常都是成對的用)。var1='ovar2="PythonProgramming"var3=''' ochuanzhiboke'''var4= oprint o\"dear\"利用\print ovar1= ovar2="PythonProgramming"print"var1[0]:",var1[0]print"var2[1:5]:",var1[0]:Hvar2[1:5]:ythovar1= oprint"Updatedmystr:-",var1[:6]+'Python'Updatedmystr:- oPython操作符描 實 a+b輸出結(jié)果 a*2輸出結(jié)果: []通過索引獲取字符 a[1]輸出結(jié)果e[:]截取字符串中的一部 a[1:4]輸出結(jié)果in成員運算 如果字符串中包含給定的字符返回notin成員運算 如果字符串中不包含給定的字符返回r/R原始字符 print Python在Python中,字符串格式化使用與C中sprintfprint"Mynameis%sandweightis%dkg!"%('Zara',mystr= o mystr.find(str,start=0,mystr.index(str,start=0,mystr.count(str,start=0,mystr.decode(encoding='UTF-8',mystr.encode(encoding='UTF-8',mystrstr1str2,countcount次 ce(str1,str2,mystr.split(str="",mystr.endswith(obj,0,mystrTrue見如果mystr.rfind(str,start=0,end=len(mystr)mystr.rindex(str,Python有一個timeandcalendar模組可以幫忙.如函數(shù)time.time()用ticks計時單位返回從12:00am,January1,1970(epoch)開始的記錄的當(dāng)前操作系統(tǒng)時間>>>ticks=print"Numberoftickssince12:00am,January1,1970:",ticksNumberoftickssince12:00am,January1,1970: 序號屬性值tm_yeartm_mon1到tm_mday1到tm_hour0到tm_min0到tm_sec0到61(60或61是閏秒tm_wday0到6(0是周一tm_yday1到366(儒略歷 -1,0,11>>>import>>>localtime=>>>print"Localcurrenttime:",Localcurrenttime:time.struct_time(tm_year=2013,tm_mday=17,tm_hour=21,tm_min=26,tm_sec=3,tm_wday=2,tm_yday=198,localtime=time.asctime(time.localtime(time.time()))print"Localcurrenttime:",localtimeLocalcurrenttime:TueJan1310:17:09>>>cal=calendar.month(2008,>>>print"Hereisthe>>>printHereistheJanuaryMoTuWeThFrSa12345789101112141516171819212223242526282930 接受時間元組并返回一個可讀的形式為"TueDec1118:07:14 周二18時07分14秒)的24time.clock( time.time( 序號屬性及描述序號函數(shù)及描述 每日寬度間隔為w字符。每行長度為21*W+18+2*C。lcalendar.firstweekday( 每日寬度間隔為w字符。每行的長度為7*w+6。l 相當(dāng)于print 相當(dāng)于printcalendar.calendar(year,w,l,c) 月份為1(一月)到12(12月)于定義參數(shù)。函數(shù)的第一行語句可以選擇性地使用文檔字符串—用于存放函數(shù)說明。函數(shù)內(nèi)容以冒號起始,并且縮進。deffunctionnameparametersreturndefprintme(strprintstr#Functiondefinitionisheredefprintme(str):printstr?Nowyoucancallprintmefunction#defchangememylistprint函數(shù)內(nèi)取值mylist#調(diào)用changeme函數(shù)mylist[10,20,30]?changeme(mylist)?print"函數(shù)外取值:",函數(shù)內(nèi)取值:[10,20,30,[1,2,3,函數(shù)外取值:[10,20,30,[1,2,3,命名參數(shù)和函數(shù)調(diào)用關(guān)系緊密,調(diào)用方用參數(shù)名確定傳入的參數(shù)值。你可以跳過不傳的參數(shù)或者亂序傳參,defprintmestr,nameprintstr?printname?printme(name="test",str="Mydefprintinfonameage35print"Name:",name?print"Age",age?printinfo(age=50,name="miki")?printinfo(age=9,name="miki")?Name:mikiAge50Name:mikiAge35初,基本語法如下:deffunctionname([formal_args,*var_args_tuplereturn[expression]#defprintinfoarg1*vartupleprint輸出printarg1forvarinvartuple:printvar#調(diào)用printinfoprintinfo(10printinfo(70,60,50雖然函數(shù)看起來只能寫一行,卻不等同于或的內(nèi)聯(lián)函數(shù),后者的目的是調(diào)用小函數(shù)時不占用棧內(nèi)存從而增加運行效率。語法lambda[arg1[,arg2,sum=lambdaarg1,arg2:arg1+print"Valueoftotal:",sum(10,20)print"Valueoftotal:",sum(20,20)Valueoftotal:Valueoftotal:defsum(arg1,arg2):#返回2個參數(shù)的和."totalarg1arg2print"Insidethefunction:",return#調(diào)用sumtotal=sum(10,20print"Outsidethefunction:", #defcounter(start=0):defcount[0]+=1returncount[0]return>>>import>>>printc1()>>>printc1()>>>printc2()>>>print fromtimeimportctime,deftimefun(func):defwrappedfunc():print"%scalledat%s"%(func.name,ctime())returnfunc()returnfromtimeimportctime,defdefwrappedfunc(a,print"%scalledat%s"%(func.name,ctime())printa,breturnfunc(a,b)returnwrappedfuncdeffoo(a,b):printa+bfromtimeimportctime,deftimefun_arg(pre="o"):deftimefun(func):defprint"%scalledat%s%s"%(func.name,ctime(),pre)returnfunc()returnwrappedfuncreturntimefun deffoo():deftoo():fromtimeimporttimedeflogged(when):deflog(f,*args,print"fun:%sargs:%rkargs:%r%(fargskargs)defdefwrapper(*args,**kargs):log(f,*args,**kargs)returnf(*args,**kargs)returndefdefwrapper(*args,**kargs):
returnf(*args,**kargs)log(f,*args,print"timedelta:%s"%(time()-now)returnwrapperreturn{"pre":pre_logged,exceptKeyError,raiseValueError(e),'mustbe"pre"ordeffun(name):print" o,",name 例子執(zhí)行到defgen():forxinxrange(4):tmp=yieldxiftmp==" print"world"print cpp",>>>fromgenerationimportcpp1cpp2三.類(Class):用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。方法重載:如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,這個過程叫方法的覆蓋(),實例變量:定義在方法中的變量,只作用于當(dāng)前實例的類。繼承:即一個派生類(d)繼承基類(e)的字段和方法。類的屬性包括成員變量和方法,其中方法的定義和普通函數(shù)的定義非常類似,但方法必須以。可以直接在類外通過對象名,如果想定義成私有的,則需面加個下劃線' '構(gòu)造方 析構(gòu)方 class 類變 #類體class_suite由類成員,方法,數(shù)據(jù)屬性組 initdef函數(shù)>>>classEmployee:classSpec="itisatestclass" init(self,name,salary):=nameself.salary=salaryEmployee.empCount+=1 print"name= init方法接受參數(shù)"創(chuàng)建Employee類的第一個對象"emp1=Employee("Zara",2000)"創(chuàng)建Employee類的第二個對象"emp2Employee("Manni"5000) emp1.age=7#添加一個'age'屬性emp1.age=8#修改'age'屬性delemp1.age#刪除'age'getattr(obj,name[,default]):對象的屬性hasattr(obj,name):setattr(obj,name,value):delattr(obj,name): 類的屬性(包含一個字典,由類的數(shù)據(jù)屬性組成 name:類名module:類定義所在的模塊(類的全名是'main如果類位于一個導(dǎo)入模塊mymod中,那么className.module 等于mymod) :類的所有父類構(gòu)成元素(包含了以個由所有父類組成的元組)在Python內(nèi)部記錄著所有使用中的對象各有多少。當(dāng)對象被創(chuàng)建時,就創(chuàng)建了一個計數(shù),當(dāng)這個對象不再需要時,也就是說,這個對象的計數(shù)變?yōu)?時,它被回收。但是回收不是"立即"的,由解釋器在適當(dāng)?shù)臅r機,將對象占用的內(nèi)存空間回收。繼承完全可以理解成類之間的類型類型關(guān)系。繼承語法class派生類名(基類名)://...基類名寫作括號里,基本類是在類定義的時候,在元組之中指明的。 如果在繼承元組中列了一個以上的類,那么它就被稱作"多重繼承。classSubClassName(ParentClass1[,ParentClass2,...]):'Optionalclass ationstring'class parentAttr=100definit(self):print調(diào)用父類構(gòu)造函數(shù)defparentMethod(self):print'調(diào)用父類方法'defsetAttr(self,Parent.parentAttr=defprint"父類屬性:",classChild(Parent):# print調(diào)用子類構(gòu)造方法"defprint'調(diào)用子類方法childc=Child() #實例化子類 #調(diào)用子類的方法 #調(diào)用父類方法 #再次調(diào)用父類的方 再次調(diào)用父類的方法調(diào)用子類方法child父類屬性:class #定義類class #定義類classC(A, #繼承類A和issubclass()-布爾函數(shù)判斷一個類是另一個類的子類或者子孫類,語法:issubclass(sub,sup)isinstance(obj,Class)布爾函數(shù)如果obj是Class類的實例對象或者是一個Class子類的實例對象則返回true。class defmyMethod(self):print調(diào)用父類方法'classChild(Parent):#defmyMethod(self):print調(diào)用子類方法'c= 子類調(diào)用重寫方法序號方法,描述& (self[,args...]簡單的調(diào)用方法:obj=del(self析構(gòu)方法,簡單的調(diào)用方法:dellrepr(self簡單的調(diào)用方法:str(self簡單的調(diào)用方法:str(obj) (self,x簡單的調(diào)用方法:cmp(obj,class init(self,a,b):self.a=aself.b= strreturn'Vector(%d,%d)'%(self.a, addreturnVector(self.a+other.a,self.b+v1=Vector(2,10)v2=Vector(5,-2)printv1+v2private_attrs:兩個下劃線開頭,該屬性為私有,不能在類地外部被使用或直接。在類內(nèi)部的方法中使用時 在類地內(nèi)部,使用關(guān)鍵字可以為類定義一個方法,與一般函數(shù)定義不同,類方法必須包含參數(shù)類的私有方法private_method:兩個下劃線開頭,該方法為私有方法,不能在類地外部調(diào)用。在類的內(nèi)部調(diào)用 classsecretCount0#publicCount= defself.secretCount+=1self.publicCount+=1printself.secretCountcounter=JustCounter()printprintcounter.secretCount#報錯,實例不能私有變Python通過改變名稱來包含類名122Traceback(mostrecentcalllast):File"test.py",line17,in<module>printcounter.secretCount#報錯,實例不能私有變AttributeError:JustCounterinstancehasnoattribute'Python不允許實例化的類私有數(shù)據(jù),但你可以使用 printcounter._JustCounter12221#!/usr/bin/env23class4'''2015new5678 init(self,subj,name,9'''thisiscreate print"initdefsetName(self,defreturndefprint"subj=",print"name=",print"age=",print =",print"grade=",print"school=",Student.defupdategrade(cls,cls.grade=defprint"name=",cls.print"dict=",cls.print"class=",cls.簡單地說,模塊就是一個保存了import想使用源文件,只需在另一個源文件里執(zhí)行語句可以自動防止重復(fù)rt形如:importimport#From…importfrommodnameimportname1[,name2[,...nameN]]fromfibimportFrom…import*frommodnameimport setsetglobalVarName的表達式會告訴Python,VarName是一個全局變量,這樣Python例如,我們在全局命名空間里定義一個變量。我們再在函數(shù)內(nèi)給變量賦值,然后會假定是一個局部變量。然而,我們并沒有在前一個局部變量,結(jié)果就是會出現(xiàn)一個的錯誤。Money=2000defAddMoney():#想改正代碼就取消以釋#globalMoneyMoney=Money+1importmathcontent=print['doc','file','name','acos','asin','atan2','ceil','cos','cosh','degrees','e','fabs','floor','fmod','frexp','hypot','ldexp','log10','modf','pi','pow','radians','sin','sinh','sqrt','tan','tanh']根據(jù)調(diào)用地方的不同,和函數(shù)可被用來返回全局和局部命名空間里的名字。如果在函數(shù)內(nèi)部調(diào)用,返回的是所有能在該函數(shù)里 名。 #pots.py#coding=utf-8#!/usr/bin/pythondefprint"I'mPotsPhone/Isdn.py含有函數(shù)Isdn()Phone/G3.py含有函數(shù)G3() 下創(chuàng)建filePhone/initfromPhone.postimport fromPotsimportPotsfromIsdnimportfromG3import#NowimportyourPhonePackage.importPhoneI'mPotsPhoneI'm3GPhoneI'mISDNPhone .├──├── ├── ├── init└──├──├── initfromdistutils.coreimportsetup(name="xwp",version="1.0",description="xwp'smodule",author="xingwenpeng",py_modules=['suba.aa',pythonsetup.py .├── └──lib.linux-i686- ├── ├── ├── init └── ├── ├── init├──├── ├── ├── init└──├──├── initpythonsetup.py打包后,生成最終發(fā)布壓縮包xwp-1.0.tar.gz .├── └──lib.linux-i686- ├── ├── ├── init └── ├── ├── init├── └──xwp-├──├──├── ├── ├── init└──├──├── init四.raw_input()input()函數(shù)raw_input([prompt])函數(shù)從標準輸入一個行,并返回一個字符串(去掉結(jié)尾的換行符str=raw_input("Enteryourinput:print"Receivedinputis:",這將提示你輸入任意字符串,然后在屏幕上顯示相同的字符串。當(dāng)我輸入"oPython!",它的輸出如下Enteryourinput: oPythonReceivedinputis: oPythoninput([prompt]函數(shù)和raw_input([prompt]函數(shù)基本可以互換,strinput("Enteryourinputprint"Receivedinputis:",strEnteryourinput:[x*5forxinrange(2,10,2)]Recievedinputis:[10,20,30,40]fileobject=open(file_name[,access_mode][,: 緩沖區(qū)的大小為,就不會有寄存為,文件時會寄存行大于。如果取負值,寄存區(qū)的緩沖大小則為系統(tǒng)默認一個文件被打開后,你有一個對象相關(guān)的所有屬性的列表:屬性描述 ()方法從一個打開的文件中一個字符串。需要重點注意的是,字符串可以是二進制數(shù)據(jù),而不是僅僅是文字。語法:printseek(offset[,from])方法改變當(dāng)前文件的位置。Offset變量表示要移動的字節(jié)數(shù)。變量指定開始移動字節(jié)的參考位置。如果被設(shè)為如果設(shè)為,則使用當(dāng)前的位置作為參考位置。如果它被設(shè)為,那么該文件的末尾將作為參考位置。#position= print"Currentfileposition:",#把指針再次重新定位到文件開頭position=fo.seek(0,0)?str=fo.read(10)?print"AgainreadStringisstr#關(guān)閉打開的文件的要使用這個模塊,你必須先導(dǎo)入它,然后可以調(diào)用相關(guān)的各種功能。os.rename(current_file_namenew_file_name) 以下是刪除" importos#刪除os.rmdir("/tmp/test" File對象方法:file對象提供了操作文件的一系列方法。OS對象方法:提供了處理文件及 五.#!/usr/bin/envpython#coding:utf-8myPath="./"fontPath="./"inputFile="xwp.jpg"outputFile=importImage,ImageFont,im=Image.open(myPath+inputFile)draw=ImageDraw.Draw(im)fontsize=font=ImageFont.truetype(fontPath+'KhmerOS.ttf',fontsize)draw.text((im.size[0]-fontsize,0),'5',font=font,fill=(256,0,0))im.save(myPath+outputFile,"jpeg")#!/usr/bin/envpython#coding:utf-8importstring,randomfield=string.letters+defreturndefreturn"-".join([getRandom()foriindefreturn[concatenate(4)foriin =='mainprint#!/usr/bin/envpython#coding:utf-8importrefromcollectionsimportCounterFILESOURCE='./media/abc.txt' pattern=r'''[A-Za-z]+|\$?\d+%?$'''withopen(articlefilesource)asf:r=re.findall(pattern,f.read())return =='main #!/usr/bin/envpython#coding:utf-8importre,osfromcollectionsimportFILE_PATH=defpattern=r'''[A-Za-z]+|\$?\d+%?$'''withopen(articlefilesource)asr=re.findall(pattern,returnstop_word=['the','in','of','and','to','has','that','s','is','are','a','with','as',def#切換到目標文件所在#遍歷該 total_counter=foriinifos.path.splitext(i)[1]=='.txt':total_counter+=getCounter(i)foriinstop_word:total_counter[i]=0print =='main': 思路遍歷給出 率為640×1136,將大于該分辨率的 #!/usr/bin/envpython#coding:utf-8importImage,os#myPath=myPath='/home/#outPath=outPath='/home/defprocessImage(filesource,destsource,name,imgtype): imgtype='jpeg'ifimgtype=='.jpg'elseim=Image.open(filesource+rate=max(im.size[0]/640.0ifim.size[0]>640else0,im.size[1]/1136.0ifim.size[1]>1136elseifim.thumbnail((im.size[0]/rate,im.size[1]/rate))im.save(destsource+name,imgtype)def foriinpostfix=ifpostfix=='.jpg'orpostfix=='.png':processImage(myPath,outPath,i,postfix) =='main':思路獲 #!/usr/bin/envpython#coding:utf-8importos,reFILE_PATH=defyze_code(codefilesource):total_line=comment_line=blank_line=withopen(codefilesource)asf:lines=f.readlines()total_line=len(lines)line_index=0whileline_index<total_line:line=lines[line_index]ifline.startswith("#"):comment_line+=1elifre.match("\s*'''",line)isnotNone:comment_line+=1whilere.match(".*'''$",line)isNone:line=lines[line_index]comment_line+=1line_index+=elifline=="\n":blank_line+=1line_index+=print"在%s中:"%print"代碼行數(shù):",print"注釋行數(shù):comment_line占%0.2f%%(comment_line*100.0/total_line)print"空行數(shù):",blank_line,"占%0.2f%%"%(blank_line*100.0/total_line)return[total_line,comment_line,blank_line]def#切換到code所在#遍歷該 total_lines=0ment_lines=total_blank_lines=foriinifos.path.splitext(i)[1]=='.py':line= ment_lines,total_blank_lines=total_lines+line[0], ment_lines+print"總代碼行數(shù):",total_linesprint"總注釋行數(shù) ment_lines,"占%0.2f%%"% print"總空行數(shù):",total_blank_lines,"占%0.2f%%"% =='main':beautifulsoup來解析網(wǎng)頁,Python-goose()這個,它是基于NLTK和BeautifulSoup的,分別是文本處理和HTML解析的者,目標是給定任意gitclone cdpython-goosepipinstall-rrequirements.txtpythonsetup.pyinstall#!/usr/bin/envpython#coding:utf-8fromgooseimportfromgoose.textimportStopWordsimportsys#url= url= defextract(url):g=Goose({'stopwords_class':StopWords article=g.extract(url=url)return =='mainprint思路先隨機生成,然后用Python的PIL庫畫出這個激活碼的,具體點就是創(chuàng)建畫布,加的字上去,增加噪點進行干擾,再進行模糊處理,接著保存到名字為的中。#!/usr/bin/envpython#coding:utf-8importImage,ImageDraw,ImageFont,ImageFilterimportstring,randomfontPath=defreturn[random.choice(string.letters)for_indefreturn(random.randint(30,100),random.randint(30,100),random.randint(30,defgetCodePiture():width=240height=image=Image.new('RGB',(width,height),(180,180,180))font=ImageFont.truetype(fontPath+'KhmerOS.ttf',40)draw=ImageDraw.Draw(image)code=fortindraw.text((60*t+10,0),code[t],font=font,for_indraw.point((random.randint(0,width),random.randint(0,height)),image=image.save("".join(code)+'.jpg', =='main':六.Linux正像它的名稱所說的,HTTPforHumans,給人類使用的HTTP庫!在Python的世界中,一切都應(yīng)該簡單。Requests使用的是定響應(yīng)內(nèi)容的編碼,支際化的URL和POST數(shù)據(jù)自動編碼。現(xiàn)代、、人性化。importr=requests.get('print{"args":{},"headers":"Accept":"Accept-Encoding":"gzip,deflate,compress","Host":"","User-Agent":"python-requests/2.2.1CPython/2.7.6Linux/3.16.0-30-"origin":"url":"}importrequests /s',params=myparams)printimportrequestsmydata={'wd':'Linux','name':'xwp'}r=requests.post("",print{"args":"data":"files":{},"form":{"name":"wd":{"Accept":"Accept-Encoding":"gzip,deflate,compress","Content-Length":"17","Content-Type":"application/x-www-form-urlencoded","Host":"","User-Agent":"python-requests/2.2.1CPython/2.7.6Linux/3.16.0-30-"json":"origin":"url":"}importjsonimportrequestsmydata={'wd':'Linux',r=requests.post('',print{"args":"data":"{\"wd\":\"Linux\",\"name\":\"xwp\"}","files":{},"form":{},"headers":"Accept":"Accept-Encoding":"gzip,deflate,compress","Content-Length":"30","Host":"User-Agent":"python-requests/2.2.1CPython/2.7.6Linux/3.16.0-30-"json":{"name":"wd":"origin":"url":"}importfiles={'file':open('xwp.jpg','rb')}r=requests.post(url,files=files)printr.textimportrequestsimportreurl= user={' s=requests.Session()r=s.post(url,data=html=r.textvisit=[]first= pile(r'</span><spanclass="time-tipfirst-tip"><spanclass="tip-content">(.*?)</span>')second= pile(r'</span><spanclass="time-tip"><spanclass="tip-content">(.*?)</span>')third= pile(r'</span><spanclass="time-tiplast-second-tip"><spanclass="tip-content">(.*?)</span>')last= pile(r'</span><spanclass="time-tiplast-tip"><spanclass="tip-content">(.*?)</span>')foriinvisit:printprint'以下是更多的最近來訪vm=s.get('htt fm= visitmore=foriinprintfromsocketimportmyhost=''myport=8080sockobj=socket(AF_INET,SOCK_STREAM)sockobj.bind((myhost,myport))whileconnection,address=print"connectby",whiledata=ifnotconnection.send('echo'+data)fromSocketServerimportTCPServer,BaseRequestHandlerimporttracebackclassMyBaseRequestHandlerr(BaseRequestHandler):defwhiledata= ,print"receivefrom(%r):%r"%(self._address, =="main#nethost= port= addr=(host,server=TCPServer(addr,fromSocketServerimport
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代物流信息系統(tǒng)建設(shè)中的標準化問題
- 掛繩高空作業(yè)施工方案
- 拆除臨時用電施工方案
- 生態(tài)文明教育在校園的實踐與推廣
- 現(xiàn)代企業(yè)綜合管理能力提升及領(lǐng)導(dǎo)力培訓(xùn)方案研究報告
- 國慶節(jié)營銷活動方案模板
- 2023三年級語文上冊 第一單元 習(xí)作:猜猜他是誰說課稿 新人教版
- Unit 2 AnimaIs Lesson 1 Enjoy the story(說課稿)-2024-2025學(xué)年北師大版(三起)英語五年級上冊
- 2024秋八年級物理上冊 第1章 機械運動 第2節(jié) 運動的描述說課稿2(新版)新人教版
- 2025仿石漆施工合同
- 中日勞務(wù)合同范本
- 白宮-人工智能行業(yè):美國人工智能權(quán)利法案藍圖(英譯中)
- 營口市大學(xué)生??紝U锌荚囌骖}2022
- 典范英語8-15Here comes trouble原文翻譯
- 六安市葉集化工園區(qū)污水處理廠及配套管網(wǎng)一期工程環(huán)境影響報告書
- 運動技能學(xué)習(xí)與控制課件第一章運動技能學(xué)習(xí)與控制概述
- 固體廢棄物檢查記錄
- 工程設(shè)計費取費標準
- 2023年遼寧鐵道職業(yè)技術(shù)學(xué)院高職單招(數(shù)學(xué))試題庫含答案解析
- CAPP教學(xué)講解課件
- 自然環(huán)境的服務(wù)功能課件 高中地理人教版(2019)選擇性必修3
評論
0/150
提交評論