统计目录内所有代码的行数
# python3
# coding='utf-8'
import os
import collections
def static_code(path):
queue = collections.deque()
# 进队
queue.append(path)
count = 0
while len(queue) != 0:
dirPath = queue.popleft()
# 找出所有文件
filesList = os.listdir(dirPath)
for fileName in filesList:
fileAbsPath = os.path.join(dirPath, fileName)
if os.path.isdir(fileAbsPath):
print('目录:' + fileAbsPath)
queue.append(fileAbsPath)
else:
with open(fileAbsPath, 'r', encoding='gbk') as fp:
content = fp.readlines()
count += len(content)
print('统计行数:', count)
print(count)
# getAllDirQU(r'D:\0RPA\代码统计')
static_code(r'目录')
代码执行过程中可能出现异常:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa0 in position 27: illegal multibyte sequence
这时在open文件是加上errors的处理办法,忽略异常文件即可
with open(fileAbsPath, 'r', encoding='gbk', errors='ignore') as fp:
content = fp.readlines()