求教:如何提取模块的__doc__字符串?
这是《Python 核心编程》(中文第二版)第9章的第9个练习,题目是:
进入Python标准库所在的目录。检查每个.py文件看是否有__doc__字符串,如果有,对其格式进行适当的归类整理。你的程序执行完毕后,应该会生成一个漂亮的清单。里面列出哪些模块有文档字符串,以及文档字符串的内容,清单最后附上那些没有文档字符串模块的名字。
首先我用 glob 生成了类似于/usr/lib64/python2.7/site-packages/abc.py的文件名列表(带路径的),下一步准备提取文档字符串,这个步骤我有两个思路,可是都卡住了:
方法一: name = 由列表中提取的文件名,然后 import name,接着输出 name.__doc__ ,可是 import 总是要求原始的模块名,用 name 变量来代替会出错,不知道这条路能否行得通?
方法二:open 文件,提取第一次出现的 " " "之间的内容,由于这些内容会有分行,file.readlines 将其放入了多个元素,而不是整个 " " "之间的内容,请问这个怎么解决,难不成要通过判断 " " "的索引,然后切片、合并?
这是我目前只能想到的办法,初学Python,实在没招了,请指教!
[解决办法]
1. glob只能遍历单层目录。
2. __import__可以接受变量
3. 读文件有很多方法。不知道你的书里到第九章都提了那些。就算用readlines也可以啊,自己一边遍历一遍记录'''里的行,再拼起来就行了。