2012-05-18 70 views
5

有沒有一種方法可以從解釋器中執行模塊和函數文檔字符串的關鍵字搜索?Python文檔字符串搜索 - 類似於MATLAB`lookup`或Linux`apropos`

通常,當我想在Python中做某件事時,我知道有一個模塊可以做我想做的事,但我不知道它叫什麼。我想尋找一種搜尋「的功能或模塊的名稱的X」而不必谷歌「蟒蛇做X」

舉例說明「如何打開網址」?在Linux shell中,我可能會嘗試>> apropos open url。在MATLAB下,我可能會嘗試>> lookup open url。這兩個都會給我一些函數或模塊的列表,其中包含在他們手冊頁或doc字符串中的「open」和「URL」字樣。例如:

urllib.urlopen : Create a file-like object for the specified URL to read from. 
urllib2.urlopen : ... 
... 

我想要的東西,通過所有已安裝的模塊搜索,不只是一直import編入我當前會話中的模塊。

是的,Google是搜索Python文檔字符串的好方法,但延遲有點高。 ;)

回答

5

內置的支持,以便來自pydoc.apropos

import pydoc 
pydoc.apropos('Zip') 
# output: zipimport - zipimport provides support for importing Python modules from Zip archives. 

其中,你可以看到,幾乎是無用的。當模塊無法導入時,它也會停止工作,這可能意味着「始終」,這取決於您的軟件包管理風格。

,我沒有使用,但看起來很有希望的替代方法是apropos.py

深,髒兮兮的,詳盡的「中肯」的Python。抓取system.path中的所有 庫,並匹配查詢字符串與所有 模塊名稱以及頂級模塊的類,函數和方法名稱以及文檔字符串。

用法:./apropos.py

該模塊的創建由於是pydoc的中肯的方法,其中 失敗硬當頂層模塊中的一個不能被導入的極限。 本機apropos方法也不會抓取文檔字符串,也不會抓取此模塊執行的模塊名稱。

0

使用以下命令:

pydoc -k