1#!/usr/bin/env python 2# 3# Copyright (C) 2009 The Android Open Source Project 4# 5# Licensed under the Apache License, Version 2.0 (the 'License'); 6# you may not use this file except in compliance with the License. 7# You may obtain a copy of the License at 8# 9# http://www.apache.org/licenses/LICENSE-2.0 10# 11# Unless required by applicable law or agreed to in writing, software 12# distributed under the License is distributed on an 'AS IS' BASIS, 13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14# See the License for the specific language governing permissions and 15# limitations under the License. 16# 17 18import operator, os, sys 19 20def get_file_size(path): 21 st = os.lstat(path) 22 return st.st_size; 23 24def main(argv): 25 output = [] 26 roots = argv[1:] 27 for root in roots: 28 base = len(root[:root.rfind(os.path.sep)]) 29 for dir, dirs, files in os.walk(root): 30 relative = dir[base:] 31 for f in files: 32 try: 33 row = ( 34 get_file_size(os.path.sep.join((dir, f))), 35 os.path.sep.join((relative, f)), 36 ) 37 output.append(row) 38 except os.error: 39 pass 40 output.sort(key=operator.itemgetter(0), reverse=True) 41 for row in output: 42 print "%12d %s" % row 43 44if __name__ == '__main__': 45 main(sys.argv) 46