我正在开发一个小型的python学习应用程序.在这里,学生只需搜索诸如列表,日期之类的关键字,我的应用就可以将输出作为关键字的帮助文本.
首先,我想提取所有python内置文件,使用help()将类帮助文本放入json文件中.
我试过了:
>>> import sys
>>> sys.modules.keys()
['__future__', 'copy_reg', 'sre_compile', '_hashlib', '_sre', 'encodings', 'site', '__builtin__', 'datetime', '__main__', 'encodings.encodings', 'hashlib', 'abc', 'posixpath', '_random', '_weakrefset', 'errno', 'binascii', 'encodings.codecs', 'sre_constants', 're', '_abcoll', 'types', '_codecs', '_warnings', 'math', 'genericpath', 'stat', 'zipimport', 'encodings.__builtin__', 'warnings', 'UserDict', 'encodings.utf_8', 'sys', 'codecs', 'readline', 'os.path', '_locale', 'sitecustomize', 'signal', 'random', 'linecache', 'posix', 'encodings.aliases', 'exceptions', 'sre_parse', 'os', '_weakref']
具有以上结果,我可以提取
>>> bi = sys.modules.get('__builtin__')
>>> help(bi.list.append) (or)
>>> bi.list.append.__doc__
'L.append(object) -- append object to end' # goes to json file
sys.modules给出re,random等.但是我没有在上述模块列表中找到日期时间.如何从python中找到所有可用的函数,数据类型,类等?
注意:我的目标是尽可能从python中提取帮助文本.不仅sys.modules任何方法都可以理解.
编辑:起初没有日期时间.
>>> import sys
>>> sys.modules.keys()
['copy_reg', 'encodings', 'site', '__builtin__', '__main__', 'encodings.encodings', 'abc', 'posixpath', '_weakrefset', 'errno', 'encodings.codecs', '_abcoll', 'types', '_codecs', '_warnings', 'genericpath', 'stat', 'zipimport', 'encodings.__builtin__', 'warnings', 'UserDict', 'encodings.utf_8', 'sys', 'codecs', 'readline', 'os.path', 'sitecustomize', 'signal', 'linecache', 'posix', 'encodings.aliases', 'exceptions', 'os', '_weakref']
导入datetime sys.modules之后
>>> import datetime
>>> sys.modules.keys()
['copy_reg', 'encodings', 'site', '__builtin__', 'datetime', '__main__', 'encodings.encodings', 'abc', 'posixpath', '_weakrefset', 'errno', 'encodings.codecs', '_abcoll', 'types', '_codecs', '_warnings', 'genericpath', 'stat', 'zipimport', 'encodings.__builtin__', 'warnings', 'UserDict', 'encodings.utf_8', 'sys', 'codecs', 'readline', 'os.path', 'sitecustomize', 'signal', 'linecache', 'posix', 'encodings.aliases', 'exceptions', 'os', '_weakref']
>>>
解决方法:
datetime是标准库的一部分;它的datetime.datetime类型不像list那样内置,它是一个built-in type.
from stdlib_list import stdlib_list
for lib in stdlib_list("2.7"):
try:
__import__(lib)
except ImportError:
continue
assert 'datetime' in sys.modules
print sys.modules.get('datetime').datetime.__doc__
# datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])
#
# The year, month and day arguments are required. tzinfo may be None, or an
# instance of a tzinfo subclass. The remaining arguments may be ints or longs.
标签:python
来源: https://codeday.me/bug/20191118/2029170.html