python练习———第 007 题: 有个目录,里面是你自己写过的程序,统计一下你写过多少行代码。包括空行和注释,但是要分别列出来。

题目:第 0007 题: 有个目录,里面是你自己写过的程序,统计一下你写过多少行代码。包括空行和注释,但是要分别列出来。

分析: 006和007其实相似,都是对一个文件夹内的文件内容进行操作,而且操作还都是计数操作,对于这个题呢其实也很简单,对每一个py文件的每一行进行判断,只需要判断开头是不是‘\n’即可

注意:我们平时经常用的open指令’r’,'w’等文件都是对txt文件进行操作,所以我们需要对文件的打开和平时有点不一样,我们知道py文件在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。所以我们以utf8的指定编码方式打开就行喽。
上代码

# 第 0007 题: 有个目录,里面是你自己写过的程序,统计一下你写过多少行代码。包括空行和注释,但是要分别列出来。
import os


def get_all_file(path):
    file_list = []
    for file in os.listdir(path):
        if os.path.splitext(file)[1]=='.py':
            file_list.append(path +'/'+file)
            print('添加',file)
    return file_list


def get_rows(file):
    with open(file,encoding='utf8') as f:
        lines = f.readline()
        rows = len(lines)
        vv =0
        space =0
        for line in lines:
            if line =='\n':
                space +=1
            if line[0]=="#":
                vv+=1
        date ={
            'rows':rows,
            'vv':vv,
            'space':space
        }
    return date


def run(path):
    file_list = get_all_file(path)

    all_rows =0
    all_vuui=0
    all_space= 0

    for file in file_list:
        date = get_rows(file)
        print("正在计算",file)
        rows = date.get( 'rows')
        vv = date.get('vv')
        space = date.get('space')
        all_rows += rows
        all_space +=space
        all_vuui +=vv
    print('所有代码的行数:{}\n其中包括的注释行数:{}\n其中空格行数:{}'.format(all_rows, all_vuui, all_space))


if __name__ =='__main__':
    path = 'C:\\Users\\wangchen\\Desktop\\python学习\\程序\\每日一题'
    run(path=path)

谢谢~~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

おもいね

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值