본문 바로가기

Python

[python] byte 단위 변환 코드(byte ->kb, mb, gb, tb, pd, eb)

반응형

byte를 입력으로 주면 킬로바이트(kilobyte), 메가바이트(megabyte), 기가바이트(giga byte) 단위 등으로 변환하는 코드는 아래와 같다. 

 

def byte_transform(bytes, to, bsize=1024):
...     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 round(r,2)

>>> byte_transform(1073741824, 'g')
1.0
>>> byte_transform(1073741824, 'm')
1024.0
>>> byte_transform(1073741824, 'k')
1048576.0

byte_transform의 함수의 첫번째 인자에는 변환 대상인 bytes를 주고, to에는 변환할 단위를 준다.

 

'k' : 킬로바이트

'm' : 메카바이트

'g' : 기가바이트

't' : 테라바이트

'p' : 페타바이트

'e' : 엑사바이트

 

 

bsize 같은 경우 기본적으로 1024인데, 1000단위로 계산하고 싶을때는 1000을 주면 된다.

 

>>> byte_transform(1073741824, 'g')
1.0
>>> byte_transform(1073741824, 'm')
1024.0
>>> byte_transform(1073741824, 'k')
1048576.0

 

위처럼 byte를 특정 단위로 변환할 수 있다.

반응형