#python #docstring
#python #строка документа
Вопрос:
Есть ли способ получить строку документа файла Python, если у меня есть только имя файла? Например, у меня есть файл Python с именем a.py . Я знаю, что у него есть строка документа (которая была задана ранее), но не знаю о ее внутренней структуре, т. Е. Есть ли у нее какие-либо классы или main и т.д.? Я надеюсь, что я не забыл что-то довольно очевидное, Если я знаю, что у него есть основная функция, я могу сделать это таким образом, используя импорт
filename = 'a.py'
foo = __import__(filename)
filedescription = inspect.getdoc(foo.main())
Я не могу просто сделать это таким образом:
filename.__doc__ #it does not work
Ответ №1:
Вы должны делать…
foo = __import__('a')
mydocstring = foo.__doc__
или еще проще…
import a
mydocstring = a.__doc__
Комментарии:
1. Ааа, полученное с помощью import, превращает его в объект и, следовательно.__doc__ работает, в противном случае a просто обрабатывается как строка и, следовательно, завершается ошибкой.
Ответ №2:
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)
Ответ №3:
И если вам нужны строки документа модуля, в котором вы уже находитесь :
import sys
sys.modules[__name__].__doc__