e = False ext = os.path.splitext(fullpath)[1] import fnmatch # Unix的shell风格的通配符匹配 for s in arg['extensions']: if fnmatch.fnmatch(ext, s): treat_file = True # fullpath带有正确的扩展名 size = os.path.getsize(fullpath) if treat_file and size > arg['size_limit']: size = '%.2fMb' % (size/1000000.0) # 打印 arg['filelist'].append({'size': size, 'name': fullpath}) # 按照大小排列文件 def filesort(a, b): return cmp(float(a['size'][:-2]), float(b['size'][:-2])) bigfiles['filelist'].sort(filesort) bigfiles['filelist'].reverse() for fileinfo in bigfiles['filelist']: print fileinfo['name'], fileinfo['size'] 注意为列表排序的函数,bigfiles['filelist']函数中的每个元素就是一个字典,键size保存着一个字符串,不过在进行比较之前必须将单位Mb(最后两个字符)去掉,并将其转换为浮点数。
八、小结 对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数。重要的是,这些函数无论是在Unix、Windows还是Macintosh平台上,它们的使用方式是完全一致的。本文详细解释了这些函数的使用方法,其中,首先介绍了显示目录内容的功能,然后描述如何测试一个文件名对应的是一个标准文件、目录还是链接,以及提取文件大小和日期的方法。之后,还将介绍如何删除文件和目录,如何复制和删除文件,以及怎样将一个完整的文件路径分解成目录部分和文件名部分,最后,讲解目录的创建,以及如何在目录树中移动目录并处理文件。
|