목차
- os.read 함수란?
- os.read 함수 인자 및 반환 값 설명
- os.read의 'rt' 모드로 텍스트 파일 읽기
- os.read의 'rb' 모드로 바이너리 파일 읽기
- 파일 한 줄씩 읽기 예제
1. os.read 함수란?
os.read()
함수는 주어진 파일 디스크립터에서 데이터를 읽어오는 함수입니다. 이 함수는 파일에서 원하는 크기의 데이터를 읽어올 수 있습니다.
2. os.read 함수 인자 및 반환 값 설명
os.read()
함수는 다음과 같은 형식을 가집니다:
os.read(fd, count)
fd
(파일 디스크립터)
fd
는 읽어올 파일의 디스크립터(file descriptor)를 나타내는 숫자 값입니다. 파일 디스크립터는 파일을 다루는 데 사용되는 식별자입니다.
count
(읽을 바이트 수)
count
는 읽어올 바이트 수를 나타내는 정수값입니다. 이 값만큼 파일에서 데이터를 읽어옵니다.
반환 값
os.read()
함수는 읽어온 데이터를 나타내는 바이트열을 반환합니다.
3. os.read의 'rt' 모드로 텍스트 파일 읽기
os.read()
함수를 사용하여 텍스트 파일을 읽어올 때에는 파일을 텍스트 모드('rt')로 열어야 합니다. 아래는 예제 코드입니다. 총 100글자를 읽어와 출력합니다.
import os
file_path = '/tmp/output.txt'
mode = 'rt' # 텍스트 모드
with open(file_path, mode) as file:
fd = file.fileno()
data = os.read(fd, 100) # 100바이트 읽기
print(data)
4. os.read의 'rb' 모드로 바이너리 파일 읽기
os.read()
함수를 사용하여 바이너리 파일을 읽어올 때에는 파일을 바이너리 모드('rb')로 열어야 합니다. 아래는 예제 코드입니다:
import os
file_path = '/tmp/wireshark_enp5s0_20230731125455_KIOrca.pcapng'
mode = 'rb' # 바이너리 모드
with open(file_path, mode) as file:
fd = file.fileno()
data = os.read(fd, 100) # 100바이트 읽기
print(data)
5. 파일 한 줄씩 읽기 예제
os.read()
함수를 사용하여 파일을 한 줄씩 읽어오는 예제 코드입니다:
import os
file_path = '/tmp/test_new_text.txt'
mode = 'rb' # 바이너리 모드
with open(file_path, mode) as file:
fd = file.fileno()
line = b''
while True:
char = os.read(fd, 1)
if not char:
break
line += char
if char == b'\n':
print(line.decode('utf-8'), end='')
line = b''
반응형