日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python学习笔记之常用模块用法分析

發布時間:2024/4/14 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python学习笔记之常用模块用法分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

內置模塊(不用import就可以直接使用)

?

常用內置函數

help(obj)?在線幫助,?obj可是任何類型 callable(obj)?查看一個obj是不是可以像函數一樣調用 repr(obj)?得到obj的表示字符串,可以利用這個字符串eval重建該對象的一個拷貝 eval_r(str)?表示合法的python表達式,返回這個表達式 dir(obj)?查看obj的name?space中可見的name hasattr(obj,name)?查看一個obj的name?space中是否有name getattr(obj,name)?得到一個obj的name?space中的一個name setattr(obj,name,value)?為一個obj的name?space中的一個name指向vale這個object delattr(obj,name)?從obj的name?space中刪除一個name vars(obj)?返回一個object的name?space。用dictionary表示 locals()?返回一個局部name?space,用dictionary表示 globals()?返回一個全局name?space,用dictionary表示 type(obj)?查看一個obj的類型 isinstance(obj,cls)?查看obj是不是cls的instance issubclass(subcls,supcls)?查看subcls是不是supcls的子類 ###類型轉換函數 chr(i)?把一個ASCII數值,變成字符 ord(i)?把一個字符或者unicode字符,變成ASCII數值 oct(x)?把整數x變成八進制表示的字符串 hex(x)?把整數x變成十六進制表示的字符串 str(obj)?得到obj的字符串描述 list(seq)?把一個sequence轉換成一個list tuple(seq)?把一個sequence轉換成一個tuple dict(),dict(list)?轉換成一個dictionary int(x)?轉換成一個integer long(x)?轉換成一個long?interger float(x)?轉換成一個浮點數 complex(x)?轉換成復數 max(...)?求最大值 min(...)?求最小值 ###用于執行程序的內置函數 complie?如果一段代碼經常要使用,那么先編譯,再運行會更快

和操作系統相關的調用

?

系統相關的信息模塊 import sys

sys.argv?是一個list,包含所有的命令行 sys.stdout?sys.stdin?sys.stderr?分別表示標準輸入輸出,錯誤輸出的文件對象. sys.stdin.readline()?從標準輸入讀一行 sys.stdout.write("a")?屏幕輸出a sys.exit(exit_code)?退出程序 sys.modules?是一個dictionary,表示系統中所有可用的module sys.platform?得到運行的操作系統環境 sys.path?是一個list,指明所有查找module,package的路徑.


操作系統相關的調用和操作 import os

os.getcwd()?獲取當前工作目錄,即當前python腳本工作的目錄路徑 os.chdir("dirname")?改變當前腳本工作目錄;相當于shell下cd os.curdir?返回當前目錄:?('.') os.pardir?獲取當前目錄的父目錄字符串名:('..') os.makedirs('dirname1/dirname2')?可生成多層遞歸目錄 os.removedirs('dirname1')?若目錄為空,則刪除,并遞歸到上一級目錄,如若也為空,則刪除,依此類推 os.mkdir('dirname')?生成單級目錄;相當于shell中mkdir?dirname os.rmdir('dirname')?刪除單級空目錄,若目錄不為空則無法刪除,報錯;相當于shell中rmdir?dirname os.listdir('dirname')?列出指定目錄下的所有文件和子目錄,包括隱藏文件,并以列表方式打印 os.remove()?刪除一個文件 os.rename("oldname","newname")?重命名文件/目錄 os.stat('path/filename')?獲取文件/目錄信息 os.symlink('path/filename','ln_filename')?創建符號鏈接,源需絕對路徑 os.utime()?修改時間屬性 >>>?import?os >>>?stinfo?=?os.stat('c.py') >>>?print?"access?time?of?c.py:?%s?\nmodified?time?of?c.py:?%s"?%?(stinfo.st_atime,stinfo.st_mtime) access?time?of?c.py:?1375448908.0 modified?time?of?c.py:?1369735909.0 >>>?os.utime('c.py',(1375448978,1369735977)) >>>?print?"access?time?of?c.py:?%s?\nmodified?time?of?c.py:?%s"?%?(stinfo.st_atime,stinfo.st_mtime) access?time?of?c.py:?1375448908.0 modified?time?of?c.py:?1369735909.0 退出Python交互模式,再次進入 >>>?import?os >>>?stinfo?=?os.stat('c.py') >>>?print?"access?time?of?c.py:?%s?\nmodified?time?of?c.py:?%s"?%?(stinfo.st_atime,stinfo.st_mtime) access?time?of?c.py:?1375448978.0 modified?time?of?c.py:?1369735977.0 os.walk()?生成一個目錄樹下的所有文件名 os.walk(top[,?topdown=True[,?οnerrοr=None[,?followlinks=False]]]) top表示需要遍歷的目錄樹的路徑topdown的默認值是”True”,表示首先返回目錄樹下的文件,然后在遍歷目錄樹的子目錄.Topdown的值為”False”時,則表示先遍歷目錄樹的子目錄,返回子目錄下的文件,最后返回根目錄下的文件onerror的默認值是”None”,表示忽略文件遍歷時產生的錯誤.如果不為空,則提供一個自定義函數提示錯誤信息后繼續遍歷或拋出異常中止遍歷該函數返回一個元組,該元組有3個元素,這3個元素分別表示每次遍歷的路徑名,目錄列表和文件列表>>>?import?os >>>?for?root,?dirs,?files?in?os.walk("wd/chat",?topdown=False): ...?for?name?in?files: ...?print(os.path.join(root,?name))?#打印文件絕對路徑 ...?for?name?in?dirs: ...?print(os.path.join(root,?name))?#打印目錄絕對路徑 ... os.tmpfile()?創建并打開‘w+b一個新的臨時文件 os.sep?輸出操作系統特定的路徑分隔符,win下為"\\",Linux下為"/" os.linesep?輸出當前平臺使用的行終止符,win下為"\t\n",Linux下為"\n" os.pathsep?輸出用于分割文件路徑的字符串 os.name?輸出字符串指示當前使用平臺。win->'nt';?Linux->'posix' os.system("bash?command")?運行shell命令,直接顯示 os.popen("bash?command")?運行shell命令,生成對象,可賦給變量,再用read讀取 >>>?import?os >>>?os.system('ls?twisted') chat_client_twisted.py?chat_server_twisted.py 0>>>?LS?=?os.popen('ls?twisted') >>>?LS.readlines() ['chat_client_twisted.py\n',?'chat_server_twisted.py\n'] os.environ?獲取系統環境變量 os.access('pathfile',os.W_OK)?檢驗文件權限模式,輸出True,False os.chmod('pathfile',os.W_OK)?改變文件權限模式 #?echo?'test'?>?test.sh >>>?os.access('test.sh',os.W_OK) True >>>?os.access('test.sh',os.X_OK) False >>>?os.chmod('test.sh',os.X_OK) >>>?os.access('test.sh',os.X_OK) True #?ls?-l?test.sh ---------x?1?root?root?12?Oct?20?23:03?test.sh =============================================== os.environ?一個dictionary?包含環境變量的映射關系 os.environ["HOME"]?可以得到環境變量HOME的值 os.chdir(dir)?改變當前目錄 os.chdir('d:\\outlook')?注意windows下用到轉義 os.getcwd()?得到當前目錄 os.getegid()?得到有效組id os.getgid()?得到組id os.getuid()?得到用戶id os.geteuid()?得到有效用戶id os.setegid()?os.setegid()?os.seteuid()?os.setuid()?#修改文件所屬信息 os.getgruops()?得到用戶組名稱列表 os.getlogin()?得到用戶登錄名稱 os.getenv?得到環境變量 os.putenv?設置環境變量 os.umask?設置umask os.system(cmd)?利用系統調用,運行cmd命令 os.system("echo?'hello'?>?/tmp/xx/a.txt") os.mkdir('/tmp/xx',0755)?創建一個權限為755的目錄 os.listdir('/tmp/xx')?列出目錄中的目錄和文件 os.rename('/tmp/xx/a.txt','/tmp/xx/b.txt')?重命名 os.remove('/tmp/xx/b.txt')?刪除文件 os.rmdir('/tmp/xx')?刪除目錄###用os.path編寫平臺無關的程序 os.path.abspath(path)?返回path規范化的絕對路徑 >>>?import?os.path >>>?os.path.abspath('c.py') '/root/py/c.py' >>>?os.path.abspath('../py/c.py') '/root/py/c.py' os.path.split(path)?將path分割成目錄和文件名二元組返回 >>>?os.path.split('/root/py/c.py') ('/root/py',?'c.py') >>>?os.path.split('/root/py/') ('/root/py',?'') os.path.dirname(path)?返回path的目錄。其實就是os.path.split(path)的第一個元素 >>>?os.path.dirname('/root/py/c.py') '/root/py' >>>?os.path.dirname('c.py') '' os.path.basename(path)?返回path最后的文件名。如何path以/或\結尾,那么就會返回空值。即os.path.split(path)的第二個元素 >>>?os.path.basename('/root/py/c.py') 'c.py' >>>?os.path.basename('/root/py') 'py' os.path.commonprefix(list)?返回list中,所有path共有的最長的路徑,從左向右,相同字符 os.path.exists(path)?如果path存在,返回True;如果path不存在,返回False os.path.isabs(path)?如果path是絕對路徑,返回True os.path.isfile(path)?如果path是一個存在的文件,返回True。否則返回False os.path.isdir(path)?如果path是一個存在的目錄,則返回True。否則返回False os.path.join(path1[,?path2[,?...]])?將多個路徑組合后返回,第一個絕對路徑之前的參數將被忽略 os.path.normcase(path)?在Linux下,該函數會原樣返回path,在windows平臺上會將路徑中所有字符轉換為小寫,并將所有斜杠轉換為反斜杠 >>>?os.path.normcase('c:/windows\\system32\\') 'c:\\windows\\system32\\' os.path.normpath(path)?規范化路徑 >>>?os.path.normpath('c://windows\\System32\\../Temp/') 'c:\\windows\\Temp' os.path.splitdrive(path)?拆分驅動器名和路徑,主要對win,對linux元組第一個總是空的 >>>?os.path.splitdrive('c:\\windows') ('c:',?'\\windows') os.path.splitext(path)?分離文件名與擴展名;默認返回(fname,fextension)元組,可做分片操作?,以“.”為分隔符 >>>?os.path.splitext('/root/py/c.py') ('/root/py/c',?'.py') os.path.getsize(path)?返回path的大小(字節) os.path.getatime(path)?返回path所指向的文件或者目錄的最后存取時間 os.path.getmtime(path)?返回path所指向的文件或者目錄的最后修改時間 os.path.walk(top,func,arg) top表示需要遍歷的目錄樹的路徑func表示回調函數,對遍歷路徑進行處理.所謂回調函數,是作為某個函數的參數使用,當某個時間觸發時,程序將調用定義好的回調函數處理某個任務.回調函數必須提供3個參數:第1個參數為walk()的參數tag,第2個參數表示目錄列表,第3個參數表示文件列表arg是傳遞給回調參數func的元組.回調函數的一個參數必須是arg,為回調函數提供處理參數.參數arg可以為空 >>>?import?os >>>?def?VisitDir(arg,dirname,names): ...?for?filespath?in?names: ...?print?os.path.join(dirname,filespath) ... >>>?path='/root/py/wd/chat' >>>?os.path.walk(path,VisitDir,()) /root/py/wd/chat/chat_server.py /root/py/wd/chat/chat_client.py /root/py/wd/chat/test /root/py/wd/chat/test/linuxeye /root/py/wd/chat/test/test2 /root/py/wd/chat/test/test3 /root/py/wd/chat/test/test2/asdf /root/py/wd/chat/test/test3/sdfaxx os.path.walk()與os.walk()產生的文件名列表并不相同。os.path.walk()產生目錄樹下的目錄路徑和文件路徑,而os.walk()只產生文件路徑 ========================================= os.path.abspath("1.txt")?==?os.path.join(os.getcwd(),?"1.txt") os.path.split(os.getcwd())?用于分開一個目錄名稱中的目錄部分和文件名稱部分。 os.path.join(os.getcwd(),?os.pardir,?'a',?'a.doc')?全成路徑名稱. os.pardir?表示當前平臺下上一級目錄的字符?.. os.path.getctime("/root/1.txt")?返回1.txt的ctime(創建時間)時間戳 os.path.exists(os.getcwd())?判斷文件是否存在 os.path.expanduser('~/dir')?把~擴展成用戶根目錄 os.path.expandvars('$PATH')?擴展環境變量PATH os.path.isfile(os.getcwd())?判斷是否是文件名,1是0否 os.path.isdir('c:\Python26\temp')?判斷是否是目錄,1是0否 os.path.islink('/home/huaying/111.sql')?是否是符號連接?windows下不可用 os.path.ismout(os.getcwd())?是否是文件系統安裝點?windows下不可用 os.path.samefile(os.getcwd(),?'/home/huaying')?看看兩個文件名是不是指的是同一個文件 os.path.walk('/home/flying',?test_fun,?"a.c")?遍歷/home/flying下所有子目錄包括本目錄,對于每個目錄都會調用函數test_fun例:在某個目錄中,和他所有的子目錄中查找名稱是a.c的文件或目錄: def?test_fun(filename,?dirname,?names):?//filename即是walk中的a.c?dirname是訪問的目錄名稱 if?filename?in?names:?//names是一個list,包含dirname目錄下的所有內容 print?os.path.join(dirname,?filename) os.path.walk('/home/flying',?test_fun,?"a.c")##文件操作 ###打開文件 f?=?open("filename",?"r")?r只讀?w寫?rw讀寫?rb讀二進制?wb寫二進制?w+寫追加 ###讀寫文件 f.write("a")?f.write(str)?寫一字符串 f.writeline()?f.readlines()?與下read類同 f.read()?全讀出來?f.read(size)?表示從文件中讀取size個字符 f.readline()?讀一行,到文件結尾,返回空串. f.readlines()?讀取全部,返回一個list.?list每個元素表示一行,包含"\n"\ f.tell()?返回當前文件讀取位置 f.seek(off,?where)?定位文件讀寫位置.?off表示偏移量,正數向文件尾移動,負數表示向開頭移動。where為0表示從開始算起,1表示從當前位置算,2表示從結尾算. f.flush()?刷新緩存 ###關閉文件 f.close()##正則表達式?import?re ###簡單的regexp p?=?re.compile("abc") if?p.match("abc")?:?print?"match" 上例中首先生成一個pattern(模式),如果和某個字符串匹配,就返回一個match?object 除某些特殊字符metacharacter元字符,大多數字符都和自身匹配。這些特殊字符是?。^?$?*?+???{?[?]?\?|?(?)###字符集合(用[]表示) 列出字符,如[abc]表示匹配a或b或c,大多數metacharacter在[]中只表示和本身匹配。例: a?=?".^$*+?{\\|()"?大多數metachar在[]中都和本身匹配,但"^[]\"不同 p?=?re.compile("["+a+"]") for?i?in?a: if?p.match(i): print?"[%s]?is?match"?%i else: print?"[%s]?is?not?match"?%i 在[]中包含[]本身,表示"["或者"]"匹配,用\[和\]表示。 ^出現在[]的開頭,表示取反,[^abc]表示除了a,b,c之外的所有字符,^沒有出現在開頭,即于身身匹配。-可表示范圍.[a-zA-Z]匹配任何一個英文字母。[0-9]匹配任何數字。 \在[]中的妙用。 \d?[0-9] \D?[^0-9] \s?[?\t\n\r\f\v] \S?[^?\t\n\r\f\v] \w?[a-zA-Z0-9_] \W?[^a-zA-Z0-9_] \t?表示和tab匹配,?其他的都和字符串的表示法一致 \x20?表示和十六進制ascii?0x20匹配 有了\,可以在[]中表示任何字符。注:單獨的一個"."如果沒有出現[]中,表示出了換行\n以外的匹配任何字符,類似[^\n].###regexp的重復 {m,n}表示出現m個以上(含m個),n個以下(含n個).?如ab{1,3}c和abc,abbc,abbbc匹配,不會與ac,abbbc匹配。m是下界,n是上界。m省略表下界是0,n省略,表上界無限大。*表示{,}?+表示{1,}??表示{0,1} 最大匹配和最小匹配?python都是最大匹配,如果要最小匹配,在*,+,?,{m,n}后面加一個?. match?object的end可以得到匹配的最后一個字符的位置。 re.compile("a*").match('aaaa').end()?4?最大匹配 re.compile("a*?").match('aaaa').end()?0?最小匹配###使用原始字符串 字符串表示方法中用\\表示字符\.大量使用影響可讀性。 解決方法:在字符串前面加一個r表示raw格式。 a?=?r"\a"?print?a?結果是\a a?=?r"\"a"?print?a?結果是\"a###使用re模塊 先用re.compile得到一個RegexObject?表示一個regexp 后用pattern的match,search的方法,得到MatchObject 再用match?object得到匹配的位置,匹配的字符串等信息###RegxObject常用函數: >>>?re.compile("a").match("abab")?如果abab的開頭和re.compile("a")匹配,得到MatchObject <_sre.SRE_Match?object?at?0x81d43c8> >>>?print?re.compile("a").match("bbab") None?注:從str的開頭開始匹配 >>>?re.compile("a").search("abab")?在abab中搜索第一個和re_obj匹配的部分 <_sre.SRE_Match?object?at?0x81d43c8> >>>?print?re.compile("a").search("bbab") <_sre.SRE_Match?object?at?0x8184e18>?和match()不同,不必從開頭匹配 re_obj.findall(str)?返回str中搜索所有和re_obj匹配的部分. 返回一個tuple,其中元素是匹配的字符串.###MatchObject的常用函數 m.start()?返回起始位置, m.end()返回結束位置(不包含該位置的字符). m.span()?返回一個tuple表示(m.start(),?m.end()) m.pos(),?m.endpos(),?m.re(),?m.string() m.re().search(m.string(),?m.pos(),?m.endpos())?會得到m本身 m.finditer()可以返回一個iterator,用來遍歷所有找到的MatchObject. for?m?in?re.compile("[ab]").finditer("tatbxaxb"): print?m.span()###高級regexp |?表示聯合多個regexp.?A?B兩個regexp,A|B表示和A匹配或者跟B匹配. ^?表示只匹配一行的開始行首,^只有在開頭才有此特殊意義。 $?表示只匹配一行的結尾 \A?表示只匹配第一行字符串的開頭?^匹配每一行的行首 \Z?表示只匹配行一行字符串的結尾?$匹配第一行的行尾 \b?只匹配詞的邊界?例:\binfo\b?只會匹配"info"?不會匹配information \B?表示匹配非單詞邊界###例子 >>>?print?re.compile(r"\binfo\b").match("info?")?#使用raw格式?\b表示單詞邊界 <_sre.SRE_Match?object?at?0x817aa98> >>>?print?re.compile("\binfo\b").match("info?")?#沒有使用raw?\b表示退格符號 None >>>?print?re.compile("\binfo\b").match("\binfo\b?") <_sre.SRE_Match?object?at?0x8174948>


分組(Group) 示例

re.compile("(a(b)c)d").match("abcd").groups()?#('abc',?'b')#!/usr/local/bin/python import?re x?=?""" name:?Charles Address:?BUPTname:?Ann Address:?BUPT """ #p?=?re.compile(r"^name:(.*)\n^Address:(.*)\n",?re.M) p?=?re.compile(r"^name:(?P<name>.*)\n^Address:(?P<address>.*)\n",?re.M) for?m?in?p.finditer(x): print?m.span() print?"here?is?your?friends?list" print?"%s,?%s"%m.groups()


Compile Flag

用re.compile得到RegxObject時,可以有一些flag用來調整RegxObject的詳細特征. DOTALL,?S?讓.匹配任意字符,包括換行符\n IGNORECASE,?I?忽略大小寫 LOCALES,?L?讓\w?\W?\b?\B和當前的locale一致 MULTILINE,?M?多行模式,只影響^和$(參見上例) VERBOSE,?X?verbose模式


轉載于:https://blog.51cto.com/svsky/1926122

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的python学习笔记之常用模块用法分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。