[파이썬3 바이너리 값 편집]
[ Python3 기준 ]
파일의 바이너리 값을 편집하고자 한다.
ex) 파일의 Data 길이를 나타내는 Header 값을 수정하고자 하는 경우!
파이썬 3에서는 참 편리한 함수를 제공하여 편집이 용이하다.
우선 파일을 바이너리 모드로 열어준다. (b 추가)
바이너리 모드이므로 여기서 read() 함수를 호출하면 type : <class 'bytes'>으로 읽힌다.
bytes 타입으로 산술연산을 할 수 없으므로 int로 변환시켜 계산한다.
int.from_bytes(bytes, byteorder, signed=) 함수를 사용하자.
bytes |
bytes-like-object 또는 iterable producing bytes가 들어가야한다. |
byteorder |
endian 방식을 표기하는데, 'big' or 'little' 중 선택한다. |
signed |
two's complement가 사용됐는지 여부를 표시한다. signed=True (signed도 같이 적어줘야함, False는 생략가능) |
int로 변환하여 원하는 연산을 수행한 후에 파일에 저장할 때는 다시 bytes type으로 바꿔줘야한다.
int.to_bytes(bytes, length, byteorder) 함수를 사용하자.
bytes |
bytes-like-object 또는 iterable producing bytes |
length |
변환될 길이를 명시. |
byteorder |
endian 방식을 표기하는데, 'big' or 'little' 중 선택한다. |
파일에서 읽어온 bytes b'AABBCCDD'를 int로 변환한 결과 = 2864434397
여기에 1을 더한 후 다시 bytes로 변환한 결과 = b'AABBCCDE'
bytes를 이용한 연산이 원하던 대로 수행되었음을 알 수 있다. :)
'파이썬 담아두기' 카테고리의 다른 글
파이썬3 타입 확인, 검사 하는 방법 (0) | 2018.09.27 |
---|---|
파이썬3 현재 커서 위치 반환 (0) | 2018.09.27 |
파이썬 Binary 파일값 hex로 다루기 (0) | 2018.09.21 |
파이썬 한글 인코딩 해결 (0) | 2018.09.21 |
파이썬 입출력 (0) | 2018.09.21 |