通常文件分布在不止一个目录之下。即使在一个目录下,模块包下也有着很多子目录,而且它们 的嵌套方式没有一定的规则。故真正需要做的是贯穿整个目录树。
''' 找出整个目录树种最大的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源代码目录树中。为使程序更完整,我们可以进行一样的目录树搜索,不过是在模块导入搜索路径的各目录下。
转载于:https://www.cnblogs.com/start20180703/p/10313488.html