CodeGym /자바 코스 /Python SELF KO /바이너리 파일 작업하기

바이너리 파일 작업하기

Python SELF KO
레벨 21 , 레슨 4
사용 가능

5.1 바이너리 데이터

Python에서 바이너리 파일 작업은 텍스트 파일 작업과 약간 다릅니다. 왜냐하면 바이너리 파일은 사람이 읽을 수 있는 형식이 아닌 데이터 포맷을 포함하기 때문이죠. 바이너리 파일은 문자열 대신 바이트와 함께 작업해요.

바이너리 파일을 사용하기 위해서는 open() 함수를 사용하고, 모드에 'b'를 지정해야 해요 (예: 읽기용으로 'rb', 쓰기용으로 'wb' 등).

바이너리 파일 열기 예시:

  • 읽기: 'rb'
  • 쓰기: 'wb'
  • 추가하기: 'ab'
  • 읽기 및 쓰기: 'r+b', 'w+b', 'a+b'

예시:


file = open('example.bin', 'rb')
content = file.read()
print(content)
file.close()

변수 'content'은 바이트 배열을 포함하게 될 거예요.

바이너리 데이터 (바이트)는 가장 낮고 기본적인 수준의 데이터 표현이에요. 모든 데이터는 바이너리로 읽힐 수 있습니다.

이는 텍스트 파일을 언제든지 바이너리로 읽을 수 있다는 것을 의미하지만, 모든 바이너리 파일이 텍스트로 해석될 수 있는 것은 아닙니다.

5.2 바이너리 파일 읽기

파일의 전체 내용 읽기

read() 메소드는 파일의 모든 내용을 바이트로 읽습니다.

예시:


file = open('example.bin', 'rb')
content = file.read()
print(content)
file.close()

특정 바이트 수 읽기

read(n) 메소드는 파일에서 n 바이트를 읽습니다.

예시:


file = open('example.bin', 'rb')
content = file.read(10)  # 처음 10 바이트를 읽습니다
print(content)
file.close()

줄 단위로 읽기

readline() 메소드는 파일에서 한 줄을 읽습니다. 바이너리 파일의 경우 줄은 새 줄 문자 (\n)로 끝납니다.

예시:


file = open('example.bin', 'rb')
line = file.readline()
print(line)
file.close()

모든 줄 읽기

readlines() 메소드는 파일의 모든 줄을 읽어 바이트 리스트로 반환합니다.

예시:


file = open('example.bin', 'rb')
lines = file.readlines()
for line in lines:
    print(line)
file.close()

문자열 작업을 위한 메소드는 텍스트가 아닌 내용을 포함한 파일을 읽을 때 올바르게 작동하지 않을 수 있어요. 예를 들어 아카이브, 이미지 또는 비디오 같은 경우요.

5.3 바이너리 데이터 쓰기

write() 메소드는 바이트를 파일에 씁니다. 기록할 데이터는 (bytes) 형식이어야 해요.

이미지 읽기 및 쓰기

파일에서 이미지를 읽고 다른 파일에 작성하기.


# 이미지 읽기
with open('input_image.jpg', 'rb') as infile:
    image_data = infile.read()
        
# 이미지 쓰기
with open('output_image.jpg', 'wb') as outfile:
    outfile.write(image_data)

텍스트 데이터 또한 쓸 수 있어요:

예시:


data = b"Hello, World!"
lines = [b"First line.\n", b"Second line.\n", b"Third line.\n"]
        
file = open('example.bin', 'wb')
file.write(data)
file.writelines(lines)
file.close()
1
Опрос
파일 작업하기,  21 уровень,  4 лекция
недоступен
파일 작업하기
파일 작업하기
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION