def countFileLines(path, fileTypes, ignoreDirs=[]):
"""???????????????
Args:
path: ??
fileTypes: ???????????['.py', '.c', '.java']
ignoreDirs: ???????????['.git']
showDetails: ???????????????????
Returns:
count: ???
details: {filename: count}????????
"""
count = 0
details = {}
for root, dirs, filenames in os.walk(path):
# print root # ????
# print dirs # ????????
# print filenames # ????????
ignoreFlag = False
for eachDir in ignoreDirs:
if root.find(eachDir) >= 0:
ignoreFlag = True
break
if ignoreFlag:
continue
for fn in filenames:
typeFlag = False
for ft in fileTypes:
if fn.endswith(ft):
typeFlag = True
break
if not typeFlag:
continue
f = os.path.join(root, fn)
for each in fileinput.input(f):
# print each #???????
pass
details[fileinput.filename()] = fileinput.lineno()
count += fileinput.lineno()
return count, details
评论列表
文章目录