查找sys.path下所有py文件的,并比较文件大小和文件行数

import os,sys,pprint

trace = 0 #1 代表目录,2代表加上文件
visited ={}
allsize =[]



for srcdir in sys.path:
    for thisDir,subsHere,filesHere in os.walk(srcdir):
        if trace > 0: print(thisDir)
        thisDir = os.path.normpath(thisDir)  #规范路径字符串
        fixcase = os.path.normcase(thisDir)   #规范化路径
        if fixcase in visited:
            continue
        else:
            visited[fixcase] = True
        for filename in filesHere:
            if filename.endswith('.py'):
                if trace>1: print('...',filename)
                pypath = os.path.join(thisDir,filename)
                try:
                    pysize = os.path.getsize(pypath)
                except os.error:
                    print("skipping",pysize,sys.exc_info()[0])
                else:
                    pylines = len(open(pypath,'rb').readlines())
                    allsize.append((pysize,pylines,pypath))

print('By size........')
allsize.sort()
pprint.pprint(allsize[:3])
pprint.pprint(allsize[-3:])

print('By lines..............')
allsize.sort(key=lambda x:x[1])
pprint.pprint(allsize[:3])
pprint.pprint(allsize[-3:])
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。