바이너리 파일을 1바이트씩 읽어오는 방법이 궁금합니다
조회수 9827회
바이너리 파일을 1바이트씩 읽어오는 방법이 궁금합니다!
제가 이때까지 배운 파일io에서는 한줄씩, 여러줄씩 읽는 방법밖에 없었는데
그럼 scanf에서 %c하는 것처럼 1개씩 읽을 수 있는 방법은 없을까요?
1 답변
-
파일 모드에
'b'
를 추가하세요.'b'
는 binary 모드를 의미하는 모드입니다.관련된 모드는 open에서 볼 수 있습니다.
파이썬 2.x에서
with open("myfile", "rb") as f: byte = f.read(1) while byte != "": # byte처리 byte = f.read(1)
with
문은 파이썬 2.5버전 이하로는 지원하지 않으니from __future__ import with_statement
를 추가해야 할 수도 있습니다파이썬 3.x에서
파이썬 3에서는 raw 캐릭터를 읽어올 수 없기 때문에 조건문을 좀 바꿔줘야 합니다(
""
에서b""
)with open("myfile", "rb") as f: byte = f.read(1) while byte != b"": # Do stuff with byte. byte = f.read(1) ###아니면 with open("myfile", "rb") as f: byte = f.read(1) while byte: # Do stuff with byte. byte = f.read(1)
댓글 입력