1
2
3
4
5
6
7
8
9
10
|
def bytes_to_human(n): symbols = ( 'K' , 'M' , 'G' , 'T' , 'P' , 'E' , 'Z' , 'Y' ) prefix = {} for i,s in enumerate (symbols): prefix[s] = 1 << (i + 1 ) * 10 for s in reversed (symbols): if n > = prefix[s]: value = float (n) / prefix[s] return '%.1f%s' % (value,s) return '%sB' % n |
python编写的储存单位转换代码(以字节(B)为单位)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
def bytes(bytes): if bytes < 1024 : #比特 bytes = str ( round (bytes, 2 )) + ' B' #字节 elif bytes > = 1024 and bytes < 1024 * 1024 : bytes = str ( round (bytes / 1024 , 2 )) + ' KB' #千字节 elif bytes > = 1024 * 1024 and bytes < 1024 * 1024 * 1024 : bytes = str ( round (bytes / 1024 / 1024 , 2 )) + ' MB' #兆字节 elif bytes > = 1024 * 1024 * 1024 and bytes < 1024 * 1024 * 1024 * 1024 : bytes = str ( round (bytes / 1024 / 1024 / 1024 , 2 )) + ' GB' #千兆字节 elif bytes > = 1024 * 1024 * 1024 * 1024 and bytes < 1024 * 1024 * 1024 * 1024 * 1024 : bytes = str ( round (bytes / 1024 / 1024 / 1024 / 1024 , 2 )) + ' TB' #太字节 elif bytes > = 1024 * 1024 * 1024 * 1024 * 1024 and bytes < 1024 * 1024 * 1024 * 1024 * 1024 * 1024 : bytes = str ( round (bytes / 1024 / 1024 / 1024 / 1024 / 1024 , 2 )) + ' PB' #拍字节 elif bytes > = 1024 * 1024 * 1024 * 1024 * 1024 * 1024 and bytes < 1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024 : bytes = str ( round (bytes / 1024 / 1024 / 1024 / 1024 / 1024 / 1024 , 2 )) + ' EB' #艾字节 return bytes if __name__ = = '__main__' : print ( '0:' + bytes( 0 )) print ( '1:' + bytes( 1 )) print ( '2:' + bytes( 10 )) print ( '3:' + bytes( 100 )) print ( '4:' + bytes( 1000 )) print ( '5:' + bytes( 10000 )) print ( '6:' + bytes( 100000 )) print ( '7:' + bytes( 1000000 )) print ( '8:' + bytes( 10000000 )) print ( '9:' + bytes( 100000000 )) print ( '10:' + bytes( 1000000000 )) print ( '11:' + bytes( 10000000000 )) print ( '12:' + bytes( 100000000000 )) print ( '13:' + bytes( 1000000000000 )) print ( '14:' + bytes( 10000000000000 )) print ( '15:' + bytes( 100000000000000 )) print ( '16:' + bytes( 1000000000000000 )) print ( '17:' + bytes( 10000000000000000 )) print ( '18:' + bytes( 100000000000000000 )) print ( '19:' + bytes( 1000000000000000000 )) print ( '20:' + bytes( 10000000000000000000 )) print ( '20:' + bytes( 100000000000000000000 )) print ( '20:' + bytes( 1000000000000000000000 )) |
测试:
"D:\Program Files\Python\Python36\python.exe" C:/Users/Jochen/PycharmProjects/mysite/bytes.py
0:0 B
1:1 B
2:10 B
3:100 B
4:1000 B
5:9.77 KB
6:97.66 KB
7:976.56 KB
8:9.54 MB
9:95.37 MB
10:953.67 MB
11:9.31 GB
12:93.13 GB
13:931.32 GB
14:9.09 TB
15:90.95 TB
16:909.49 TB
17:8.88 PB
18:88.82 PB
19:888.18 PB
20:8.67 EB
20:86.74 EB
20:867.36 EBProcess finished with exit code 0
到此这篇关于Python字节单位转换(将字节转换为K M G T)的文章就介绍到这了,更多相关Python字节单位转换内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/mighty13/article/details/110455560