#!/usr/bin/env python3 import os import multiprocessing LIMIT = 100 PATH = "/" class Finished(Exception): pass def main(): filenames = [] try: for root, dirs, files in os.walk(PATH): for filename in files: filenames.append(os.path.join(root, filename)) if len(filenames) >= LIMIT: raise Finished() except Finished: pass print("{0} files, ".format(len(filenames)), end="") pool = multiprocessing.Pool() result = pool.map_async(get_size, filenames) pool.close() pool.join() print("{0} bytes".format(sum(result.get()))) def get_size(filename): try: return os.path.getsize(filename) except EnvironmentError: pass return 0 main()