Update wk.std.bytes_to_string()
This commit is contained in:
parent
9c5767f71f
commit
f9f947fab6
1 changed files with 14 additions and 29 deletions
|
|
@ -701,40 +701,25 @@ def bytes_to_string(size, decimals=0, use_binary=True):
|
||||||
decimals,
|
decimals,
|
||||||
use_binary,
|
use_binary,
|
||||||
)
|
)
|
||||||
|
scale = 1024 if use_binary else 1000
|
||||||
size = float(size)
|
size = float(size)
|
||||||
abs_size = abs(size)
|
suffix = ' ' if use_binary else ' '
|
||||||
|
units = list('KMGTPEZY')
|
||||||
# Set scale
|
|
||||||
scale = 1000
|
|
||||||
suffix = 'B'
|
|
||||||
if use_binary:
|
|
||||||
scale = 1024
|
|
||||||
suffix = 'iB'
|
|
||||||
|
|
||||||
# Convert to sensible units
|
# Convert to sensible units
|
||||||
if abs_size >= scale ** 5:
|
while units:
|
||||||
size /= scale ** 5
|
if abs(size) < scale:
|
||||||
units = 'P' + suffix
|
break
|
||||||
elif abs_size >= scale ** 4:
|
size /= scale
|
||||||
size /= scale ** 4
|
suffix = units.pop(0)
|
||||||
units = 'T' + suffix
|
size_str = (
|
||||||
elif abs_size >= scale ** 3:
|
f'{size:0.{decimals}f} {suffix}'
|
||||||
size /= scale ** 3
|
f'{"iB" if use_binary and suffix.strip() else "B"}'
|
||||||
units = 'G' + suffix
|
)
|
||||||
elif abs_size >= scale ** 2:
|
|
||||||
size /= scale ** 2
|
|
||||||
units = 'M' + suffix
|
|
||||||
elif abs_size >= scale ** 1:
|
|
||||||
size /= scale ** 1
|
|
||||||
units = 'K' + suffix
|
|
||||||
else:
|
|
||||||
size /= scale ** 0
|
|
||||||
units = f' {" " if use_binary else ""}B'
|
|
||||||
size = f'{size:0.{decimals}f} {units}'
|
|
||||||
|
|
||||||
# Done
|
# Done
|
||||||
LOG.debug('string: %s', size)
|
LOG.debug('string: %s', size_str)
|
||||||
return size
|
return size_str
|
||||||
|
|
||||||
|
|
||||||
def choice(choices, prompt='答えろ!'):
|
def choice(choices, prompt='答えろ!'):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue