札记:在日常工作或学习中,如果想知道自己累计写了多少行代码时,对每个文档进行手动统计即可,不过一旦文档有很多个,或者只想统计文档里面有标记的部分,那么用程序去实现就比较省事了。
一.解决思路
首先遍历当前目录下所有文件和子目录下的所有文件,拿到所有文件的路径数据,这一步可以通过Python的os.walk()方法去实现;然后遍历每个文件的路径,逐个打开文件并统计代码行数,打开txt文件可以通过open()方法实现,打开docx文件可以通过docx.Document()方法实现,最后打印结果。
二.实战步骤
2.1 统计txt文件所有行数
count_all_for_txt.py
【
import os
count = 0 #用于统计所有文件总行数
for root,dirs,files in os.walk(r"D:\test"): #遍历指定路径下所有子目录和文件
for file in files:
filepath = os.path.join(root,file) #生成文件的绝对路径
filename,format = os.path.splitext(filepath)
if format == ".txt": #对txt文本文件做统计
fp = open(filepath,'r',encoding = 'utf-8')
for i in fp: #遍历当前.txt文件对象的每一行,统计+1
count += 1
fp.close() #关闭打开的文件
print("文件《%s》已完成统计,累计行数为:%s行" %(file,count))
print("所有文件统计段落数为:%s行" %count) #打印全部统计结果
】
思路:
1通过os.walk()方法拿到正在访问的目录路径(root)、当前目录下的子目录名列表(dirs)、当前目录下的文件名列表(files);
2根据第1步获取的数据,遍历文件名列表(files),通过os.path.join()生成每个文件的绝对路径;
3根据第2步获取的文件路径,通过open()方法生成文件对象,然后遍历文件对象并统计;
4所有文件遍历完后,打印统计结果
---注意---#运行代码前把"D:\test"改成需要统计的目录即可
效果图: