最近的项目需要统计代码行数,注释率等,但是在统计时却把许多空白行也统计进去了,影响了统计效果
于是写了个脚本,来去除项目中的空白行,并保存处理过的项目~
import os
import re
import shutil
rootdir='F:/项目' #原项目目录
targetdir='F:/项目_new' #新项目目录,如果不存在则自动生成
pattern='.+\.(cs|xaml)$' #正则表达式,根据后缀名来判断需要处理的文件
for root,dirnames,filenames in os.walk(rootdir): #三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字
for f in filenames:
p=root+'/'+f
tar=p.replace(rootdir,targetdir)
print(p+'\n'+tar)
d = os.path.split(tar)[0]
if not os.path.exists(d):
os.makedirs(d)
m=re.match(pattern,tar)
if m!=None:
source = open(p, 'r',encoding='utf-8')
target=open(tar,'w',encoding='utf-8')
lines=source.readlines()
for line in lines:
if not (line.strip()==''):
target.write(line)
else:
shutil.copy(p,tar)
print('操作完成')
input()