Поиск python docstring – аналогично MATLAB `lookup` или Linux` apropos`

Есть ли способ выполнить поиск ключевого слова модуля и функции docstrings из интерпретатора?

Часто, когда я хочу что-то сделать на Python, я знаю, что есть модуль, который делает то, что я хочу, но я не знаю, как он называется. Я хотел бы найти способ «имени функции или модуля, который делает X», не имея в Google «python do X» .

Возьмем пример «как я могу открыть URL»? В оболочке Linux я могу попробовать >> apropos open url . В MATLAB я могу попробовать >> lookup open url найти >> lookup open url . Оба из них дадут мне списки функций или модулей, которые включают слова «open» и «URL» где-то в их странице man или doc. Например:

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

Я бы хотел, чтобы что-то просматривало все установленные модули, а не только модули, которые были import в мой текущий сеанс.

Да, Google – отличный способ поиска строк Python doc, но латентность немного высока. 😉

2 Solutions collect form web for “Поиск python docstring – аналогично MATLAB `lookup` или Linux` apropos`”

Встроенная поддержка для этого происходит от pydoc.apropos :

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

Который, как вы видите, почти бесполезен. Он также перестает работать, когда модуль не может быть импортирован, что может означать «всегда» в зависимости от стиля управления пакетами.

Альтернатива, которую я не использовал, но выглядит многообещающей, apropos.py :

Глубокий, грязный и исчерпывающий «apropos» для Python. Обход всех библиотек в файле system.path и сопоставление запроса с именами всех модулей, а также имена классов, функций и методов и docstrings модулей верхнего уровня.

Использование: ./apropos.py

Этот модуль был создан из-за ограничений метода apropos от PyDoc, который терпит неудачу, когда один из модулей верхнего уровня не может быть импортирован. Нативный метод apropos также не сканирует docstrings или глубокие имена модулей, которые этот модуль делает.

Используйте следующую команду:

 pydoc -k 
  • Как использовать переменную python в os.system?
  • Python: создание собственных заявлений
  • urllib2: отправка формы, а затем перенаправление
  • Diff многомерные словари в python
  • Вычислить расстояние между городами и найти близлежащие города на основе GeoPT, в Python в Google App Engine
  • Python предлагает расширенный поиск строк с операторами и boolean
  • Python: понимание переменных класса и экземпляра
  • Python: сделайте видео, используя несколько изображений .png
  • Python - лучший язык программирования в мире.