python核心编程学习笔记-2016-08-03-01-习题9-9

习题9-9

一开始打算导入各个模块,再利用__doc__属性,但是感觉不是太好。浏览了网上的一些答案,发现他们都是利用打开文件,直接遍历文件内容,查找两个三引号"""之间内容的思路,因此参考了这一思路,写了代码。

#-*-coding: utf-8-*-

import os

path = r'c:\python27\Lib'
os.chdir(path)
files = []
for i in os.listdir(path):
    if i[-3:] == '.py':
        files.append(i)

have_doc_file = {}
none_doc_file = []

for file in files:
    f = open(file, 'r')
    has_doc = False
    doc = []
    for eachLine in f:
        if eachLine[:3] == '"""' and not has_doc: # 以"""开头的行,首先确定有文档字符串
            has_doc = True
        if has_doc:
            doc.append(eachLine)
        if eachLine[-4:-1] == '"""' and has_doc: # 结尾字符串是"""\n,不要漏掉\n
            break
    f.close()
    if has_doc: 
        have_doc_file[file] = ''.join(doc)
    else:
        none_doc_file.append(file)

f_has_doc_obj = open(r'e:\Learning_python\coreprogramming\has_doc.txt', 'w')
for k, v in have_doc_file.iteritems():
    f_has_doc_obj.write(k + '\n' + v + '\n')
f_has_doc_obj.close()

f_none_doc_obj = open(r'e:\Learning_python\coreprogramming\none_doc.txt', 'w')
for i in none_doc_file:
    f_none_doc_obj.write(i + '\n')
f_none_doc_obj.close()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值