code: def string_SizeInBytes(size_in_bytes):
      
      res, by = divmod(size_in_bytes, 1024)
      res, kb = divmod(res, 1024)
      res, mb = divmod(res, 1024)
      res, gb = divmod(res, 1024)
      pb, tb = divmod(res, 1024)
      if pb != 0:
          human_readable_size = "%.2f PB" % (pb + tb / float(1024))
      elif tb != 0:
          human_readable_size = "%.2f TB" % (tb + gb / float(1024))
      elif gb != 0:
          human_readable_size = "%.2f GB" % (gb + mb / float(1024))
      elif mb != 0:
          human_readable_size = "%.2f MB" % (mb + kb / float(1024))
      elif kb != 0:
          human_readable_size = "%.2f KB" % (kb + by / float(1024))
      else:
          human_readable_size = "%s B" % by
      return human_readable_size
docs: Make ``size in bytes`` human readable.
      Doesn"t support size greater than 1000PB.
  
      Usage::
  
          >>> from __future__ import print_function
          >>> from weatherlab.lib.filesystem.windowsexplorer import string_SizeInBytes
          >>> print(string_SizeInBytes(100))
          100 B
          >>> print(string_SizeInBytes(100*1000))
          97.66 KB
          >>> print(string_SizeInBytes(100*1000**2))
          95.37 MB
          >>> print(string_SizeInBytes(100*1000**3))
          93.13 GB
          >>> print(string_SizeInBytes(100*1000**4))
          90.95 TB
          >>> print(string_SizeInBytes(100*1000**5))
          88.82 PB