반응형

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를 특정 단위로 변환할 수 있다.
반응형
'Python' 카테고리의 다른 글
[python] 좀비 프로세스 생성하기 (os.popen) (0) | 2022.01.10 |
---|---|
[python] 가상환경 venv 생성시 나타나는 The virtual environment was not created successfully 에러 해결법 (0) | 2021.12.12 |
[python] 소수점 반올림, 올림, 내림하는 코드 (0) | 2021.10.28 |
[python] 여러개의 공백 하나로 만드는 코드 (0) | 2021.10.27 |
[pandas] SettingWithCopyWarning 경고 끄기 (0) | 2021.10.17 |