2011-10-21 56 views
4

如果我只有文件的名稱,是否有方法獲取python文件的doc字符串?例如,我有一個名爲a.py的python文件。我知道它有一個文檔字符串(之前是強制的),但不知道它的內部結構,即它是否有任何類或主類等?我希望我不會忘記的東西很明顯 如果我知道它有一個主要的功能,我可以做這種方式是使用進口獲取python文件的doc字符串

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

我不能做這種方式:

 filename.__doc__ #it does not work 

回答

3

你應該做的事...

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

或者更簡單的...

import a 
mydocstring = a.__doc__ 
+1

啊哈得到它採用進口使其成爲一個對象,因此.__一隻是當作一個字符串,從而doc__會給出工作,否則失敗。 –

0

如果你需要的模塊的文檔字符串你已經在:

import sys 
sys.modules[__name__].__doc__ 
1
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)