導航:首頁 > 編程語言 > python顯示所有模塊

python顯示所有模塊

發布時間:2022-09-13 00:52:32

『壹』 python 標准庫模塊 - re

正則表達式引擎對正則表達式文本進行編譯生成正則表達式對象,再由正則表達式對象對目標文本進行匹配,後返回匹配結果。

正則表達式中一共包含 2 中字元: 普通字元 、 元字元

匹配單個字元的元字元及其含義:

匹配重復性的元字元及其含義:

匹配位置的元字元及其含義:

分組匹配的元字元及其含義:

表示或運算的元字元:

轉義元字元:

在 Python 中使用正則表達式,我們需要藉助 re 模塊提供的強大 API,下面我們就來學習幾個 re 模塊常用的介面吧~

參數說明: findall("正則表達式", "要匹配的字元串", flags=標志1|標志2|...)
返回值:以列表形式返回匹配到的字元串。

下面,我們用 findall 返回 Python 之禪中首尾用到的反義詞:

運行結果:

當正則表達式中含有一個以上分組時, findall 返回的列表由元組構成,元組中包含每個分組匹配到的內容。如果只有一個分組,則返回由該分組匹配到的內容組所構成的列表:

match 函數返回的結果是一個 SRE_Match 對象:

SRE_Match 具有很多的屬性,比如 .string 屬性可以方便我們我獲取在匹配時輸入的字元串:

屬性 .re 可以獲取匹配時使用的編譯後的正則表達式模式:

由於默認使用了 re.UNICODE ,所以我們這里的 w 可以匹配中文字元。

屬性 .regs 則以列表的形式返回正則表達式匹配到的內容以及各個分組陪陪到的內容,不過請注意,返回的都是索引的形式:

可以使用序列切片來看一下我們的正則表達式及其中的兩個分組所匹配到的內容:

SRE_Match 對象也提供了非常多好用的方法,比如 groups 可以獲取各個分組匹配到的內容:

group 則可以靈活地獲取正則表達式或對應分組匹配到的內容:

如果使用的正則表達式定義了分組的名稱, group 還可以通過名稱獲取相應分組匹配的內容:

在定義了分組的名稱之後,還可以方便地使用 groupdict 以字典的形式返回所有分組匹配的結果:

最後需要注意的是, match 從字元串的開頭開始匹配,如果開頭不符合要求,則直接返回 None 。

與 match 匹配開頭不同, search 匹配第一個符合規則的字元串,未成功則返回 None 。參數: re.search(pattern, string, flags=0) ;返回值同 match 。

在介紹 match 的使用時,最後一個例子,由於我們在字元串前面添加了 'PYTHON' 導致 match 使用原來的正則表達式無法匹配,返回 None 。此時,使用 search 就可以迎刃而解啦:

運行結果:

小結:

參數: re.split(pattern, string, maxsplit=0, flags=0) , split 功能非常強大,以正則表達式匹配到的標志來分隔字元串,比如下面這樣一個混亂的字元串,我們要提取其中所有的數字:

下面,我們就來詳細介紹一下 split 的用法。

首先,是以單字元切割:

以分號切割時,共產生了 4 個子字元串,放在列表中返回。
下面,還是以單字元切割,但可以使用正則表達式中的 [] 來指定多種字元:

由於字元串 line 中有連續的 2 個分號,逗號或者空格,因此可以使用 [;s,]+ 來切割:

最後,上面的字元串在切割時,分隔符都沒有被保留下來,使用括弧捕獲分組,即可保留分隔符:

re.sub 提供比字元串的 replace 方法更加強大的功能:對於輸入的字元串 string ,利用正則表達式 pattern 強大的字元串處理功能,實現復雜的字元串替換處理為 repl ,返回被替換後的字元串。

下面的例子中,我們將句子中多餘的空格和數字去掉:

如果想要知道替換過程中,共發生了多少次替換,可以使用 subn :

小結:

上述的案例中,我們每次都需要傳入正則表達式,相應的函數每次在調用時,都需要編譯一次正則表達式。如果上述過程需要多次重復,那麼每次都去耗費時間編譯正則表達式是很不劃算的。

re 模塊為我們提供了 compile 函數,用來編譯正則表達式模式,返回編譯好模式。因此,可以把那些常用的正則表達式編譯成正則表達式對象,以提高效率。

格式: re.compile(pattern, flags=0) ,其中 pattern 為編譯時用的表達式字元串, flags 為編譯標志位,用於修改正則表達式的匹配方式,如:是否區分大小寫,多行匹配等。常用的 flags 有:

註:使用按位或 | 連接多個 flags 。

我們上述介紹的 re 模塊的匹配、分割、替換函數, compile 函數的返回值類提供了相應的方法,使用方式類似,只是不需要傳入正則表達式字元串而已。

由於用法幾乎一致,這里就不一一舉例啦~

貪婪模式 : * + ? {m,n} ,正則表達式的重復默認總是盡可能多得向後匹配內容。

非貪婪模式 : *? +? ?? {m,n}? ,盡可能少的匹配內容。

『貳』 python有沒有列出當前已經安裝的模塊的命令

已安裝的?
也就是說所有可供import的mole都算?而不僅僅是已經import的mole?
如果是的話
可以這樣調用help函數,然後再help控制台里輸入moles(整個過程必須在互動式界面下完成,無法寫成腳本)
>>> help()
help> moles
稍等一會後,就會列出所有的模塊

『叄』 python 如何查看當前導入了哪些模塊

使用dir() 顯示即可
其中 '__builtins__', '__doc__', '__name__', '__package__'默認存在,所以去除這幾個就是你當前導入的模塊---使用del 模塊名可刪除當前導入的模塊

『肆』 Python怎麼找需要的模塊

在解釋器裡面用help就可能獲得模塊的使用說明,用__file__就可以獲得模塊文件位置。
例如 os 模塊
>>> import os
>>> help(os) # 獲得os模塊的使用幫助,在幫助里也會列出模塊文件位置,見下圖
>>> print os.__file__ # 列印出os模塊文件所在位置

『伍』 python 如何查看外部模塊的使用方法,舉例詳細的講一下,如何自己看doc就能理解模塊方法如何使用及調用

if opname not in roots:
opfunc.__name__ = opname
opfunc.__doc__ = getattr(int, opname).__doc__
setattr(cls, opname, opfunc)
return cls

『陸』 查詢python安裝了哪些模塊

可以用 pip list 命令查看已經安裝的模塊。

『柒』 python 導入全部模塊

通常的辦法是,你將所有的模塊都放到系統的lib目錄里。或者是放到sys的path變數里。 然後就可以import了。

你可以設置一個容器。在容器里,將所有需要的模塊都import完成。如果不知道哪些模塊,可以使用OS的WALK來遍歷。

把你的用戶代碼跑在容器里。這樣就不需要import所有的模塊了。 容器可以是自己寫的一個解釋器,比如象是ipython這樣子。也可以是一個WEB界面, 或者是一個服務,一個可以調用插件的運行模塊。

容器也可以是一個代碼框架。

『捌』 python3怎麼查看內置模塊

pip list
查看所有已經安裝的模塊

『玖』 如何查看Python未下載的模塊

在終端里輸入pip list可以查看你的機子上已經安裝的python模塊和版本。那麼你機子上沒有列出的模塊就是未下載未安裝的模塊了

『拾』 Python html 模塊簡介

比如:

比如,數學符號 , ,可以直接獲得:

escape 將特殊字元 & , < 和 > 替換為HTML安全序列。如果可選的 flags quote 為 True (默認值),則還會翻譯引號字元,包括雙引號( " )和單引號( ' )字元。

將字元串 s 中的所有命名和數字字元引用 (例如 > , > , > ) 轉換為相應的 Unicode 字元。此函數使用 HTML 5 標准為有效和無效字元引用定義的規則,以及 HTML 5 命名字元引用列表 。

這個模塊定義了一個 HTMLParser 類,為 HTML(超文本標記語言)和 XHTML 文本文件解析提供基礎。

class html.parser.HTMLParser(*, convert_charrefs=True) 創建一個能解析無效標記的解析器實例。查找標簽(tags)和其他標記(markup)並調用 handler 函數。

用法:

通過調用 self.handle_starttag 處理開始標簽,或通過調用 self.handle_startendtag 處理結束標簽。標簽之間的數據通過以 data 為參數調用 self.handle_data 從解析器傳遞到派生類(數據可以分成任意塊)。如果 convert_charrefs 為 True ,則將字元引用自動轉換為相應的 Unicode 字元(並且 self.handle_data 不再拆分成塊),否則通過調用帶有字元串的 self.handle_entityref 或 self.handle_charref 來傳遞它們以分別包含命名或數字引用作為參數。如果 convert_charrefs 為 True (默認值),則所有字元引用( script / style 元素中的除外)都會自動轉換為相應的 Unicode 字元。

一個 HTMLParser 類的實例用來接受 HTML 數據,並在標記開始、標記結束、文本、注釋和其他元素標記出現的時候調用對應的方法。要實現具體的行為,請使用 HTMLParser 的子類並重載其方法。

這個解析器不檢查結束標記是否與開始標記匹配,也不會因外層元素完畢而隱式關閉了的元素引發結束標記處理。

下面是簡單的 HTML 解析器的一個基本示例,使用 HTMLParser 類,當遇到開始標記、結束標記以及數據的時候將內容列印出來。

輸出:

HTMLParser.reset() 重置實例。丟失所有未處理的數據。在實例化階段被隱式調用。

HTMLParser.feed(data) 填充一些文本到解析器中。如果包含完整的元素,則被處理;如果數據不完整,將被緩沖直到更多的數據被填充,或者 close() 被調用。 data 必須為 str 類型。

HTMLParser.close() 如同後面跟著一個文件結束標記一樣,強制處理所有緩沖數據。這個方法能被派生類重新定義,用於在輸入的末尾定義附加處理,但是重定義的版本應當始終調用基類 HTMLParser 的 close() 方法。

HTMLParser.getpos() 返回當前行號和偏移值。

HTMLParser.get_starttag_text() 返回最近打開的開始標記中的文本。結構化處理時通常應該不需要這個,但在處理「已部署」的 HTML 或是在以最小改變來重新生成輸入時可能會有用處(例如可以保留屬性間的空格等)。

下列方法將在遇到數據或者標記元素的時候被調用。他們需要在子類中重載。基類的實現中沒有任何實際操作(除了 handle_startendtag() ):

HTMLParser.handle_starttag 這個方法在標簽開始的時候被調用(例如: <div id="main"> )。 tag 參數是小寫的標簽名。 attrs 參數是一個 (name, value) 形式的列表,包含了所有在標記的 <> 括弧中找到的屬性。 name 轉換為小寫, value 的引號被去除,字元和實體引用都會被替換。比如,對於標簽 <a href="https://www.cwi.nl/"> ,這個方法將以下列形式被調用 handle_starttag('a', [('href', 'https://www.cwi.nl/')]) 。 html.entities 中的所有實體引用,會被替換為屬性值。

HTMLParser.handle_endtag(tag) 此方法被用來處理元素的結束標記(例如: </div> )。 tag 參數是小寫的標簽名。

HTMLParser.handle_startendtag(tag, attrs) 類似於 handle_starttag() , 只是在解析器遇到 XHTML 樣式的空標記時被調用( <tag ... /> )。這個方法能被需要這種特殊詞法信息的子類重載;默認實現僅簡單調用 handle_starttag() 和 handle_endtag() 。

HTMLParser.handle_data(data) 這個方法被用來處理任意數據(例如:文本節點和 <script>...</script> 以及 <style>...</style> 中的內容)。

HTMLParser.handle_entityref(name) 這個方法被用於處理 &name; 形式的命名字元引用(例如 > ),其中 name 是通用的實體引用(例如: 'gt' )。如果 convert_charrefs 為 True,該方法永遠不會被調用。

HTMLParser.handle_charref(name) 這個方法被用來處理 &#NNN; 和 &#xNNN; 形式的十進制和十六進制字元引用。例如, > 等效的十進制形式為 > ,而十六進制形式為 > ;在這種情況下,方法將收到 '62' 或 'x3E' 。如果 convert_charrefs 為 True ,則該方法永遠不會被調用。

HTMLParser.handle_comment(data) 這個方法在遇到注釋的時候被調用(例如: )。例如, 這個注釋會用 ' comment ' 作為參數調用此方法。

Internet Explorer 條件注釋(condcoms)的內容也被發送到這個方法,因此,對於 ``,這個方法將接收到 '[if IE 9]>IE9-specific content<![endif]' 。

HTMLParser.handle_decl(decl) 這個方法用來處理 HTML doctype 申明(例如 <!DOCTYPE html> )。 decl 形參為 <!...> 標記中的所有內容(例如: 'DOCTYPE html' )。

HTMLParser.handle_pi(data) 此方法在遇到處理指令的時候被調用。 data 形參將包含整個處理指令。例如,對於處理指令 <?proc color='red'> ,這個方法將以 handle_pi("proc color='red'") 形式被調用。它旨在被派生類重載;基類實現中無任何實際操作。

註解: HTMLParser 類使用 SGML 語法規則處理指令。使用 '?' 結尾的 XHTML 處理指令將導致 '?' 包含在 data 中。

HTMLParser.unknown_decl(data) 當解析器讀到無法識別的聲明時,此方法被調用。 data 形參為 <![...]> 標記中的所有內容。某些時候對派生類的重載很有用。基類實現中無任何實際操作。

因此,我們可以如此定義:

下面介紹如何解析 HTML 文檔。

解析一個文檔類型聲明:

解析一個具有一些屬性和標題的元素:

script 和 style 元素中的內容原樣返回,無需進一步解析:

解析注釋:

解析命名或數字形式的字元引用,並把他們轉換到正確的字元(注意:這 3 種轉義都是 '>' ):

填充不完整的塊給 feed() 執行, handle_data() 可能會多次調用(除非 convert_charrefs 被設置為 True ):

解析無效的 HTML (例如:未引用的屬性)也能正常運行:

閱讀全文

與python顯示所有模塊相關的資料

熱點內容
python超簡單編程 瀏覽:257
獲取命令方 瀏覽:976
怎樣製作文件夾和圖片 瀏覽:58
調研編譯寫信息 瀏覽:859
python馮諾依曼 瀏覽:417
同時安裝多個app有什麼影響 瀏覽:253
奧術殺戮命令宏 瀏覽:182
用sdes加密明文字母e 瀏覽:360
單片機原理及應用試題 瀏覽:423
易語言開啟指定文件夾 瀏覽:40
馬思純參加密室大逃脫 瀏覽:322
文件夾冬季澆築溫度 瀏覽:712
京東有返點的aPp叫什麼 瀏覽:603
如何查看u點家庭伺服器是幾兆 瀏覽:262
python應用介面怎麼接 瀏覽:67
腐蝕怎麼進不去伺服器啊 瀏覽:359
linuxcpiogz 瀏覽:631
安卓中的布局是什麼文件 瀏覽:397
dex反編譯部分代碼無法查看 瀏覽:464
linuxandroid編譯 瀏覽:603