我有一個變量,其中包含一個位的值,例如10000000代表10mb。我想寫一個函數,從一個值的位,返回一個字符串與正確的單位,並正確轉換。Python中的多位操作
示例如果我使用52200000,它返回52.2mb。
我不知道該怎麼做。有人可以幫忙,謝謝
我有一個變量,其中包含一個位的值,例如10000000代表10mb。我想寫一個函數,從一個值的位,返回一個字符串與正確的單位,並正確轉換。Python中的多位操作
示例如果我使用52200000,它返回52.2mb。
我不知道該怎麼做。有人可以幫忙,謝謝
def humanize(n):
base=1000.0 # replace with 1024 if you want kib Mib etc
letters=['','k','M','G','T','P','E','Z','Y']
f=float(n)
for x in letters:
if f < base: break
f /= base
return '{:.3}{}b'.format(f,x) # change {}b to {}ib if working with kib etc.
這些天,Mb通常指的是一個十進制的百萬字節,而Mib通常指的是它們的1024 * 1024。這段代碼很容易切換。
Mb是指Million * Bits *,MB是Million * Bytes * – SiHa
def bytesto(bytes, to, bsize=1000): a = {'k' : 1, 'm': 2, 'g' : 3, 't' : 4, 'p' : 5, 'e' : 6 } r = float(bytes) for i in range(a[to]): r = r/bsize return(r)
可以使用上述函數將字節轉換爲KB,MB,GB,TB
print(bytesto(314575262000000, 'k')) # 314575262000.0 KB
print(bytesto(314575262000000, 'm')) # 314575262.0 MB
print(bytesto(314575262000000, 't')) # 314.575262 TB
你混淆MB(= 1000B)和MiB(= 1024B) - 請參閱:https://en.wikipedia.org/wiki/Binary_prefix – mata
@mata瞭解MIB和MB之間的區別。謝謝 –
10000000字節不是10 MB。 –
您可以發佈五個或十個其他示例輸入和輸出嗎? –
這將字節格式化爲人類可讀:http://stackoverflow.com/questions/1094841/reusable-library-to-get-human-readable-version-of-file-size – Schore