python中常用的模塊的總結(jié)_第1頁
python中常用的模塊的總結(jié)_第2頁
python中常用的模塊的總結(jié)_第3頁
python中常用的模塊的總結(jié)_第4頁
python中常用的模塊的總結(jié)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

..1、模塊和包a.定義:模塊用來從邏輯上組織python代碼〔變量,函數(shù),類,邏輯:實現(xiàn)一個功能,本質(zhì)就是.py結(jié)尾的python文件?!怖纾何募簍est.py,對應(yīng)的模塊名:test包:用來從邏輯上組織模塊的,本質(zhì)就是一個目錄〔必須帶有一個__init__.py的文件b.導(dǎo)入方法importmodule_nameimportmodule_1的本質(zhì):是將module_1解釋了一遍也就是將module_1中的所有代碼復(fù)制給了module_1frommodule_name1importname本質(zhì)是將module_name1中的name變量放到當(dāng)前程序中運行一遍所以調(diào)用的時候直接print<name>就可以打印出name變量的值代碼例子:自己寫的模塊,其他程序調(diào)用,如下所示:模塊module_1.py代碼:復(fù)制代碼1name="dean"2defsay_hello<>:3print<"hello%s"%name>調(diào)用模塊的python程序main代碼如下:〔切記調(diào)用模塊的時候只需要import模塊名不需要加.pyimportmodule_1#調(diào)用變量print<module_1.name>#調(diào)用模塊中的方法module_1.say_hello<>復(fù)制代碼這樣運行main程序后的結(jié)果如下:1D:\python35\python.exeD:/python培訓(xùn)/s14/day5/module_test/main.py2dean3hellodean45Processfinishedwithexitcode0importmodule_name1,module_name2frommodule_nameimport*<這種方法不建議使用>frommodule_nameimportloggeraslog<別名的方法>c.導(dǎo)入模塊的本質(zhì)就是把python文件解釋一遍importmodule_name---->module_name.py---->module_name.py的路徑---->sys.path導(dǎo)入包的本質(zhì)就是執(zhí)行該包下面的__init__.py關(guān)于導(dǎo)入包的一個代碼例子:新建一個package_test包,并在該包下面建立一個test1.py的python程序,在package包的同級目錄建立一個p_test.py的程序test1的代碼如下:1deftest<>:2print<"intthetest1">package_test包下的__init__.py的代碼如下:1#importtest1〔理論上這樣就可以但是在pycharm下測試必須用下面from.importtest12from.importtest13print<"intheinit">p_test的代碼如下:1importpackage_test#執(zhí)行__init__.py2package_test.test1.test<>這樣運行p_test的結(jié)果:1D:\python35\python.exeD:/python培訓(xùn)/s14/day5/p_test.py2intheinit3intthetest145Processfinishedwithexitcode0從上述的例子中也可以看出:導(dǎo)入包的時候其實是執(zhí)行包下的__init__.py程序,所以如果想要調(diào)用包下面的python程序需要在包下的__init__.py導(dǎo)入包下面的程序2、模塊的分類a.標(biāo)準(zhǔn)庫b.開源模塊c.自動以模塊3、時間模塊time與datetimepython中常見的時間表示方法:a.時間戳?xí)r間戳:從1970年1月1日00:00:00到現(xiàn)在為止一共的時間數(shù)〔單位為秒>>>time.time<>1472016249.393169>>>b.格式化的時間字符串c.struct_time<元組>相互之間的轉(zhuǎn)換關(guān)系如下:1time.localtime<>將時間戳轉(zhuǎn)換為當(dāng)前時間的元組>>>time.localtime<>time.struct_time<tm_year=2016,tm_mon=8,tm_mday=24,tm_hour=13,tm_min=27,tm_sec=55,tm_wday=2,tm_yday=237,tm_isdst=0>>>>2time.gmtime<>將時間戳轉(zhuǎn)換為當(dāng)前時間utc時間的元組>>>time.gmtime<>time.struct_time<tm_year=2016,tm_mon=8,tm_mday=24,tm_hour=5,tm_min=35,tm_sec=43,tm_wday=2,tm_yday=237,tm_isdst=0>>>>3time.mktime<>可以將struct_time轉(zhuǎn)換成時間戳>>>x=time.localtime<>>>>xtime.struct_time<tm_year=2016,tm_mon=8,tm_mday=24,tm_hour=13,tm_min=39,tm_sec=42,tm_wday=2,tm_yday=237,tm_isdst=0>>>>time.mktime<x>1472017182.0>>>4將struct_time裝換成格式化的時間字符串>>>xtime.struct_time<tm_year=2016,tm_mon=8,tm_mday=24,tm_hour=13,tm_min=39,tm_sec=42,tm_wday=2,tm_yday=237,tm_isdst=0>>>>time.strftime<"%Y-%m-%d%H:%M:%S",x>'2016-08-2413:39:42'>>>5可以將格式化的時間字符串轉(zhuǎn)換為struct_time>>>time.strptime<"2016-08-2414:05:32","%Y-%m-%d%H:%M:%S">time.struct_time<tm_year=2016,tm_mon=8,tm_mday=24,tm_hour=14,tm_min=5,tm_sec=32,tm_wday=2,tm_yday=237,tm_isdst=-1>>>>6將struct_time轉(zhuǎn)換成WedAug2414:22:472016這種格式>>>xtime.struct_time<tm_year=2016,tm_mon=8,tm_mday=24,tm_hour=14,tm_min=22,tm_sec=47,tm_wday=2,tm_yday=237,tm_isdst=0>>>>time.asctime<x>'WedAug2414:22:472016'>>>7將時間戳裝換成WedAug2414:22:472016格式>>>x=time.time<>>>>x1472019984.958831>>>time.ctime<x>'WedAug2414:26:242016'>>>復(fù)制代碼1%a本地〔locale簡化星期名稱2%A本地完整星期名稱3%b本地簡化月份名稱4%B本地完整月份名稱5%c本地相應(yīng)的日期和時間表示6%d一個月中的第幾天〔01-317%H一天中的第幾個小時〔24小時制,00-238%I第幾個小時〔12小時制,01-129%j一年中的第幾天〔001-36610%m月份〔01-1211%M分鐘數(shù)〔00-5912%p本地am或者pm的相應(yīng)符13%S秒〔01-6114%U一年中的星期數(shù)。〔00-53星期天是一個星期的開始。第一個星期天之前的所有天數(shù)都放在第0周。15%w一個星期中的第幾天〔0-6,0是星期天16%W和%U基本相同,不同的是%W以星期一為一個星期的開始。17%x本地相應(yīng)日期18%X本地相應(yīng)時間19%y去掉世紀(jì)的年份〔00-9920%Y完整的年份21%Z時區(qū)的名字〔如果不存在為空字符22%%‘%’字符復(fù)制代碼datetime當(dāng)前時間:datetime.datetime.now<>1、隨機模塊randomrandom.randint<1,3>則可以取出隨機1-3random.randrange<1,3>隨機從范圍內(nèi)所及random.choice<>傳遞的參數(shù)是序列包括字符串列表等>>>random.choice<"hello">'l'>>>random.choice<"hello">'o'>>>random.choice<"hello">'e'>>>>>>random.choice<["我","愛","你"]>'我'>>>random.choice<["我","愛","你"]>'你'>>>random.choice<["我","愛","你"]>'你'>>>random.choice<["我","愛","你"]>'愛'>>>random.sample〔隨機從前面的序列取出兩位>>>random.sample<"hello",2>['l','o']>>>random.sample<"hello",2>['h','l']>>>random.sample<"hello",2>['h','o']>>>random的洗牌功能:>>>a=[1,2,3,4,5,6,7,8,9]>>>random.shuffle<a>>>>a[6,3,7,4,1,8,9,2,5]>>>生成隨機驗證碼的例子:復(fù)制代碼1importstring2importrandom3a="".join<random.sample<string.ascii_lowercase,4>>4print<a>5b="".join<random.sample<string.ascii_lowercase+string.digits,5>>6print<b>78c="".join<random.sample<string.ascii_uppercase+string.digits+string.ascii_lowercase,4>>9print<c>10d="".join<random.sample<string.ascii_letters+string.digits,4>>11print<d>復(fù)制代碼運行結(jié)果如下:復(fù)制代碼1D:\python35\python.exeD:/python培訓(xùn)/s14/day5/驗證碼2.py2tbdy36te4b4Z2UA5v8He67Processfinishedwithexitcode0復(fù)制代碼5、os模塊復(fù)制代碼1os.getcwd<>獲取當(dāng)前工作目錄,即當(dāng)前python腳本工作的目錄路徑2os.chdir<"dirname">改變當(dāng)前腳本工作目錄;相當(dāng)于shell下cd3os.curdir返回當(dāng)前目錄:<'.'>4os.pardir獲取當(dāng)前目錄的父目錄字符串名:<'..'>5os.makedirs<'dirname1/dirname2'>可生成多層遞歸目錄6os.removedirs<'dirname1'>若目錄為空,則刪除,并遞歸到上一級目錄,如若也為空,則刪除,依此類推7os.mkdir<'dirname'>生成單級目錄;相當(dāng)于shell中mkdirdirname8os.rmdir<'dirname'>刪除單級空目錄,若目錄不為空則無法刪除,報錯;相當(dāng)于shell中rmdirdirname9os.listdir<'dirname'>列出指定目錄下的所有文件和子目錄,包括隱藏文件,并以列表方式打印10os.remove<>刪除一個文件11os.rename<"oldname","newname">重命名文件/目錄12os.stat<'path/filename'>獲取文件/目錄信息13os.sep輸出操作系統(tǒng)特定的路徑分隔符,win下為"\\",Linux下為"/"14os.linesep輸出當(dāng)前平臺使用的行終止符,win下為"\t\n",Linux下為"\n"15os.pathsep輸出用于分割文件路徑的字符串16輸出字符串指示當(dāng)前使用平臺。win->'nt';Linux->'posix'17os.system<"bashcommand">運行shell命令,直接顯示18os.environ獲取系統(tǒng)環(huán)境變量19os.path.abspath<path>返回path規(guī)范化的絕對路徑20os.path.split<path>將path分割成目錄和文件名二元組返回21os.path.dirname<path>返回path的目錄。其實就是os.path.split<path>的第一個元素22os.path.basename<path>返回path最后的文件名。如何path以/或\結(jié)尾,那么就會返回空值。即os.path.split<path>的第二個元素23os.path.exists<path>如果path存在,返回True;如果path不存在,返回False24os.path.isabs<path>如果path是絕對路徑,返回True25os.path.isfile<path>如果path是一個存在的文件,返回True。否則返回False26os.path.isdir<path>如果path是一個存在的目錄,則返回True。否則返回False27os.path.join<path1[,path2[,...]]>將多個路徑組合后返回,第一個絕對路徑之前的參數(shù)將被忽略28os.path.getatime<path>返回path所指向的文件或者目錄的最后存取時間29os.path.getmtime<path>返回path所指向的文件或者目錄的最后修改時間復(fù)制代碼6、sys模塊復(fù)制代碼1sys.argv命令行參數(shù)List,第一個元素是程序本身路徑2sys.exit<n>退出程序,正常退出時exit<0>3sys.version獲取Python解釋程序的版本信息4sys.path返回模塊的搜索路徑,初始化時使用PYTHONPATH環(huán)境變量的值5sys.platform返回操作系統(tǒng)平臺名稱6sys.stdout.write<'please:'>復(fù)制代碼7、shutil模塊復(fù)制代碼1importshutil23a=open<"a.txt","r",encoding="utf-8">4b=open<"b.txt","w",encoding="utf-8">56shutil.copyfileobj<a,b>復(fù)制代碼運行夠會復(fù)制一個文件b,將a文件中的內(nèi)容復(fù)制到b文件中shutil.copyfile<"b.txt","c.txt">直接復(fù)制b.txt到c.txtshutil.copymode<src,dst>僅拷貝權(quán)限。內(nèi)容,組,用戶均不變shutil.copystat<src,dst>拷貝狀態(tài)的信息shutil.copytree<src,dst,symlinks=false,ignore=none>遞歸拷貝文件shutil.rmtree<path[,ignore_errors[,onerror]]>shutil.move<sr,dst>遞歸移動文件8、用于序列化的兩個模塊json&picklejson,用于字符串和python數(shù)據(jù)類型間進行轉(zhuǎn)換pickle,用于python特有的類型和python的數(shù)據(jù)類型間進行轉(zhuǎn)換Json模塊提供了四個功能:dumps、dump、loads、loadpickle模塊提供了四個功能:dumps、dump、loads、load9、關(guān)于shelve模塊代碼例子:復(fù)制代碼1#AUTHOR:FAN2importshelve3importdatetime45d=shelve.open<"shelve_test">67info={"name":"dean","job":"it","age":23}89d["name"]=info["name"]10d["job"]=info["job"]11d["date"]=datetime.datetime.now<>12d.close<>復(fù)制代碼運行結(jié)果,會生成如下三個文件取出上述存的數(shù)據(jù)的代碼如下:1d=shelve.open<"shelve_test">2print<d.get<"name">>3print<d.get<"job">>4print<d.get<"date">>運行結(jié)果如下:復(fù)制代碼1D:\python35\python.exeD:/python培訓(xùn)/s14/day5/shelve模塊/shelve_test.py2dean3it42016-08-2416:04:13.32548256Processfinishedwithexitcode0復(fù)制代碼10、正則re模塊復(fù)制代碼1'.'默認(rèn)匹配除\n之外的任意一個字符,若指定flagDOTALL,則匹配任意字符,包括換行2'^'匹配字符開頭,若指定flagsMULTILINE,這種也可以匹配上<r"^a","\nabc\neee",flags=re.MULTILINE>3'$'匹配字符結(jié)尾,或e.search<"foo$","bfoo\nsdfsf",flags=re.MULTILINE>.group<>也可以4'*'匹配*號前的字符0次或多次,re.findall<"ab*","cabb3abcbbac">結(jié)果為['abb','ab','a']5'+'匹配前一個字符1次或多次,re.findall<"ab+","ab+cd+abb+bba">結(jié)果['ab','abb']6'?'匹配前一個字符1次或0次7'{m}'匹配前一個字符m次8'{n,m}'匹配前一個字符n到m次,re.findall<"ab{1,3}","abbabcabbcbbb">結(jié)果'abb','ab','abb']9'|'匹配|左或|右的字符,re.search<"abc|ABC","ABCBabcCD">.group<>結(jié)果'ABC'10'<...>'分組匹配,re.search<"<abc>{2}a<123|456>c","abcabca456c">.group<>結(jié)果abcabca456c111213'\A'只從字符開頭匹配,re.search<"\Aabc","alexabc">是匹配不到的14'\Z'匹配字符結(jié)尾,同$15'\d'匹配數(shù)字0-916'\D'匹配非數(shù)字17'\w'匹配[A-Za-z0-9]18'\W'匹配非[A-Za-z0-9]19'\s'匹配空白字符、\t、\n、\r,re.search<"\s+","ab\tc1\n3">.group<>結(jié)果'\t'20'\S'匹配非空白字符復(fù)制代碼r代表取消引號里面特殊字符的意義最常用的匹配語法:re.match從頭開始匹配re.search匹配包含re.findall把所有匹配到的字符放到以列表中的元素返回re.splitall以匹配到的字符當(dāng)做列表分隔符re.sub匹配字符并替換下面是關(guān)于正則的例子幫助理解:復(fù)制代碼1>>>re.match<"^zhao","zhaofan123">2<_sre.SRE_Matchobject;span=<0,4>,match='zhao'>3>>>re.match<"^ww","zhaofan123">4>>>5從這里也可以看出,如果有返回則表示匹配到了,否則則是沒有匹配到6>>>res=re.match<"^zhao","zhaofan123">7>>>res8<_sre.SRE_Matchobject;span=<0,4>,match='zhao'>9>>>res.group<>#如果想要查看匹配的內(nèi)容.group<>10'zhao'11>>>12匹配zhao后面以及數(shù)字13>>>res=re.match<"^zhao\d","zhao2323fan123">14>>>res.group<>15'zhao2'16匹配多個數(shù)字17>>>res=re.match<"^zhao\d+","zhao2323fan123">18>>>res.group<>19'zhao2323'20>>>2122查找特定字符23>>>re.search<"f.+n","zhao2323fan123">24<_sre.SRE_Matchobject;span=<8,11>,match='fan'>25>>>26>>>re.search<"f.+n","zhao2323fan123n">27<_sre.SRE_Matchobject;span=<8,15>,match='fan123n'>28>>>2930>>>re.search<"f[a-z]+n","zhao2323fan123n">31<_sre.SRE_Matchobject;span=<8,11>,match='fan'>32>>>33$是匹配到字符串的最后34>>>re.search<"#.+#","1234#hello#">35<_sre.SRE_Matchobject;span=<4,11>,match='#hello#'>36>>>37>>>re.search<"aa?","zhaaaofan">38<_sre.SRE_Matchobject;span=<2,4>,match='aa'>39>>>re.search<"aaa?","zhaaaofan">40<_sre.SRE_Matchobject;span=<2,5>,match='aaa'>41>>>42>>>re.search<"aaa?","zhaaofan">43<_sre.SRE_Matchobject;span=<2,4>,match='aa'>44>>>4546<_sre.SRE_Matchobject;span=<2,5>,match='aaa'>47>>>re.search<"aaa?","zhaaofaaan">48<_sre.SRE_Matchobject;span=<2,4>,match='aa'>49>>>re.search<"aaa?","zhaofaaan">50<_sre.SRE_Matchobject;span=<5,8>,match='aaa'>51>>>re.search<"aaa?","zhaaofaaan">52<_sre.SRE_Matchobject;span=<2,4>,match='aa'>53從上面可以很好的理解?是匹配前一個字符0次或者1次54通俗的說就是aa后面有1個或者沒有a都可以匹配到55>>>re.search<"[0-9]{3}","aaax234sdfaass22s">56<_sre.SRE_Matchobject;span=<4,7>,match='234'>57>>>58匹配數(shù)字3次59>>>re.search<"[0-9]{3}","aaax234sdfaass22s">60<_sre.SRE

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論