code: def sizeof_fmt(num, suffix='B'):
      
      precision = {'': 0, 'Ki': 0, 'Mi': 0, 'Gi': 3, 'Ti': 6, 'Pi': 9, 'Ei': 12, 'Zi': 15}
  
      for unit in ['', 'Ki', 'Mi', 'Gi', 'Ti', 'Pi', 'Ei', 'Zi']:
          if abs(num) < 1024.0:
              format_string = "{number:.%df} {unit}{suffix}" % precision[unit]
              return format_string.format(number=num, unit=unit, suffix=suffix)
          num /= 1024.0
      return "%.18f %s%s" % (num, 'Yi', suffix)
docs: Adapted from https://stackoverflow.com/a/1094933
      Re: precision - display enough decimals to show progress on a slow (<5 MB/s) Internet connection