目录操作习题
Posted wenm1128
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了目录操作习题相关的知识,希望对你有一定的参考价值。
小练习:
统计一个多级的目录下,一共多少个文件
每个文件一共有多少行,有多少空行和多少非空行。
统计一下非空行的总和是多少。
算法:
通过os.walk可以找到一个目录下的所有文件的绝对路径
打开每一个文件,执行代码统计相关的函数count_code_line
这个函数可以统计文件中的总行数、空白行数、注释行数和代码行数
最后格式化输出
通过os.walk可以找到一个目录下的所有文件的绝对路径
打开每一个文件,执行代码统计相关的函数count_code_line
这个函数可以统计文件中的总行数、空白行数、注释行数和代码行数
最后格式化输出
import os import os.path def count_lines(fp): line_number = 0 blank_line_number = 0 code_line_number =0 comment_number = 0 try: for line in fp: line_number+=1 if line.strip()=="": blank_line_number+=1 continue elif line.strip().startswith("#"): comment_number+=1 else: code_line_number+=1 return line_number,blank_line_number,comment_number,code_line_number except: print("统计文件%s代码时候出错" %fp.name) def count_code_line(file_path): if not os.path.exists(file_path): print("文件的路径不存在,请重新输入!") return None line_number = 0 blank_line_number = 0 code_line_number =0 comment_number = 0 try: fp = open(file_path,"r",encoding="gbk") return count_lines(fp) except: fp = open(file_path,"r",encoding="utf-8") return count_lines(fp) #print(count_code_line("e:\a.txt")) line_number = 0 blank_line_number = 0 code_line_number =0 comment_number = 0 for root, dirs, files in os.walk("e:\test",topdown=False) : print(u"当前目录:",root) #打印目录绝对路径 for name in files : print(u‘文件名:‘,os.path.join(root,name) )#打印文件绝对路径 file_path = os.path.join(root,name) count_result = count_code_line(file_path) line_number += count_result[0] blank_line_number += count_result[1] code_line_number +=count_result[2] comment_number += count_result[3] print(""" 总行数:%s 空白行数:%s 注释行数:%s 有效代码行数:%s """ %(line_number,blank_line_number,code_line_number, comment_number))
以上是关于目录操作习题的主要内容,如果未能解决你的问题,请参考以下文章
Android 插件化VirtualApp 源码分析 ( 目前的 API 现状 | 安装应用源码分析 | 安装按钮执行的操作 | 返回到 HomeActivity 执行的操作 )(代码片段
在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途