02扫描目录树

  通常文件分布在不止一个目录之下。即使在一个目录下,模块包下也有着很多子目录,而且它们 的嵌套方式没有一定的规则。故真正需要做的是贯穿整个目录树。

'''
找出整个目录树种最大的python源代码文件
'''
import sys,os,pprint
trace=False

if sys.platform.startswith('win'):
    dirname=r'c:\\'
else:
    dirname='/usr/*'    #在Unix、Linux、Cygwin下可用

allsizes=[]
for (thisDir,subsHere,filesHere) in os.walk(dirname):
    if trace:print(thisDir)
    for filename in filesHere:
        if filename.endswith('.py'):
            if trace:print('...',filename)
            fullname=os.path.join(thisDir,filename)
            fullsize=os.path.getsize(fullname)
            allsizes.append((fullsize,fullname))

allsizes.sort()
for size in allsizes:
    pprint.pprint(size)

  以上仍有欠缺,你的计算机上可能有额外的模块安装在别处,后者可以通过模块导入搜索路径访问,而不在python源代码目录树中。为使程序更完整,我们可以进行一样的目录树搜索,不过是在模块导入搜索路径的各目录下。

猜你喜欢

转载自www.cnblogs.com/start20180703/p/10313488.html