Получение строки документа из файла Python - PullRequest
5 голосов
/ 21 октября 2011

Есть ли способ получить строку документа файла Python, если у меня есть только имя файла? Например, у меня есть файл Python с именем a.py. Я знаю, что у него есть строка документа (она была обязательна раньше), но не знаю его внутренней структуры, т.е. есть ли у него какие-либо классы или основной и т. Д. Я надеюсь, что я не забыл что-то довольно очевидное Если я знаю, что у него есть основная функция, я могу сделать это так, используя импорт

     filename = 'a.py'
     foo = __import__(filename)
     filedescription = inspect.getdoc(foo.main())

Я не могу просто сделать это так:

     filename.__doc__    #it does not work

Ответы [ 3 ]

5 голосов
/ 21 октября 2011

Вы должны делать ...

foo = __import__('a')
mydocstring = foo.__doc__

или еще проще ...

import a
mydocstring = a.__doc__
4 голосов
/ 23 февраля 2018
import ast

filepath = "/tmp/test.py"

file_contents = ""
with open(filepath) as fd:
    file_contents = fd.read()
module = ast.parse(file_contents)
docstring = ast.get_docstring(module)
if docstring is None:
    docstring = ""

print(docstring)
0 голосов
/ 23 ноября 2017

И если вам нужны строки документации модуля, вы уже в:

import sys
sys.modules[__name__].__doc__
...