fork download
  1. import os
  2. import os.path
  3. import sys
  4.  
  5.  
  6. def histogram(root_dirname):
  7. ext = dict()
  8. for root, dirnames, filenames in os.walk(root_dirname):
  9. for filename in filenames:
  10. extname = os.path.splitext(filename)[1]
  11. filepath = os.path.join(root, filename)
  12. ext[extname] = (ext.get(extname, [0, 0])[0] + 1,
  13. ext.get(extname, [0, 0])[1] + os.path.getsize(filepath))
  14. return ext
  15.  
  16. if __name__ == '__main__':
  17. assert len(sys.argv) == 3
  18. output_file = sys.argv[2]
  19. ext = histogram(sys.argv[1])
  20. total = sum([a[0] for a in ext.values()])
  21. with open(output_file, 'w') as f:
  22. for k, v in ext.items():
  23. f.write('{}{}B{}\n'.format(
  24. k[1:].rjust(5),
  25. '{}'.format(str(v[1]).rjust(14)),
  26. ''.join(['#' for i in range(round((v[0] / total) * 50.0))]).rjust(60))
  27. )
  28.  
Runtime error #stdin #stdout #stderr 0.01s 9984KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Traceback (most recent call last):
  File "./prog.py", line 18, in <module>
IndexError: list index out of range