简介
本文讲述如何开发一款小工具用于快速检索大文件,先来体验一下如何使用:
指定检索文件夹、文件大小,将循环遍历出目录下所有文件,筛选出大于设置尺寸的文件,并排序输出。
应用开发者可从这些大文件着手,进行APK资源瘦身。
实现方式
使用python
脚本实现
步骤一:遍历文件夹
使用 os
模块 walk()
方法,很方便遍历出文件列表,root
指文件夹路径,dirs
文件下的子文件夹列表,files
文件夹下的文件列表,此方法循环遍历子文件夹
1 2
| for root, dirs, files in os.walk(path): ......
|
步骤二:查找出文件大小大于设置值的文件
1 2 3 4 5 6 7 8 9
| for fil in files: tmpPath = os.path.join(root, fil) tmpSize = os.path.getsize(tmpPath) # 跳过文件大小 小于设置值的文件 if tmpSize < size: continue tmpFile = SrcFile(tmpPath, tmpSize) print tmpFile resultFiles.append(tmpFile)
|
步骤三:对筛选出的文件排序
1
| resultFiles = sorted(resultFiles, cmp=lambda x, y: cmp(x.size, y.size), reverse=True)
|
步骤四:从命令行读取路径和文件大小参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| if __name__ == "__main__": if len(sys.argv) != 3: print use_age else: try: path = sys.argv[1] if not os.path.exists(path): raise Exception("文件夹不存在") size = int(sys.argv[2]) print "=" * 50 print "正在检索大于 %sK 的文件" % size print result = list_file_size(path, size * 1024) if result: print print "=" * 50 print "共检索出%s个文件,按大小排序后: \n" % len(result) for item in result: print item else: print print "=" * 50 print "未找符合条件的文件 \n" except Exception, e: print str(e) print use_age
|
步骤五:编译生成可执行文件
Python
脚本可使用 pyinstaller
模块很方便的打包成可执行文件(使用方法参看pyinstaller官网)
步骤六:查看使用方法
总结
如果您使用mac, 可下载可执行脚本使用
当然您也可以自行编译源码,点击下载源码