Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- import math
- import functools
- import argparse
- import sys
- def convert(func):
- units = ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']
- @functools.wraps(func)
- def inner(*args, **kwargs):
- size = func(*args, **kwargs)
- index = int(math.log(size, 1024))
- div = math.pow(1024, index)
- try:
- return '{:.2f} {}'.format(size/div, units[index])
- except IndexError:
- return '{:.2f} * 2^{} Byte'.format(size/div, index*10)
- return inner
- @convert
- def get_size(size):
- return size
- if __name__ == '__main__':
- if not sys.stdin.isatty():
- size = int(sys.stdin.read())
- else:
- parser = argparse.ArgumentParser(description='Convert from Bytes')
- parser.add_argument('size', type=int, help='size to convert')
- args = parser.parse_args()
- size = args.size
- print(get_size(size))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement