os 모듈을 사용한 파일 처리

에 의해 반환 된 File 객체 외에 open()함수, 파일 IO 작업은 Python의 내장 라이브러리를 사용하여 수행 할 수도 있습니다. OS 모듈에는 유용한 운영 체제 종속 함수를 제공합니다. 이러한 함수는 파일에 대해 낮은 수준의 읽기 / 쓰기 작업을 수행합니다.

그만큼 open()os 모듈의 함수는 내장 open ()과 유사합니다. 그러나 파일 객체가 아니라 파일 설명자 (열린 파일에 해당하는 고유 한 정수)를 반환합니다. 파일 설명 자의 값 0, 1 및 2는 stdin, stdout 및 stderr 스트림을 나타냅니다. 다른 파일에는 2부터 증분 파일 설명자가 제공됩니다.

의 경우와 같이 open() 내장 기능, os.open()함수는 파일 액세스 모드도 지정해야합니다. 다음 표는 os 모듈에 정의 된 다양한 모드를 나열합니다.

Sr. 아니. OS 모듈 및 설명
1

os.O_RDONLY

읽기 전용

2

os.O_WRONLY

쓰기 전용으로 열기

os.O_RDWR

읽기 및 쓰기 용으로 개방

4

os.O_NONBLOCK

개방시 차단하지 마십시오

5

os.O_APPEND

각 쓰기에 추가

6

os.O_CREAT

존재하지 않는 경우 파일 생성

7

os.O_TRUNC

크기를 0으로 자릅니다.

8

os.O_EXCL

생성 및 파일이있는 경우 오류

데이터를 쓰기 위해 새 파일을 열려면 다음을 지정하십시오. O_WRONLY 만큼 잘 O_CREAT파이프 (|) 연산자를 삽입하여 모드. os.open () 함수는 파일 설명자를 반환합니다.

f=os.open("test.dat", os.O_WRONLY|os.O_CREAT)

데이터는 바이트 문자열 형식으로 디스크 파일에 기록됩니다. 따라서 일반 문자열은 이전과 같이 encode () 함수를 사용하여 바이트 문자열로 변환합니다.

data="Hello World".encode('utf-8')

os 모듈의 write () 함수는이 바이트 문자열과 파일 설명자를받습니다.

os.write(f,data)

close () 함수를 사용하여 파일을 닫는 것을 잊지 마십시오.

os.close(f)

os.read () 함수를 사용하여 파일의 내용을 읽으려면 다음 문을 사용하십시오.

f=os.open("test.dat", os.O_RDONLY)
data=os.read(f,20)
print (data.decode('utf-8'))

os.read () 함수에는 파일 설명자와 읽을 바이트 수 (바이트 문자열 길이)가 필요합니다.

동시 읽기 / 쓰기 작업을 위해 파일을 열려면 O_RDWR 모드를 사용하십시오. 다음 표는 os 모듈에서 중요한 파일 동작 관련 기능을 보여줍니다.

Sr. 아니요 기능 및 설명
1

os.close(fd)

파일 설명자를 닫습니다.

2

os.open(file, flags[, mode])

파일을 열고 플래그에 따라 다양한 플래그를 설정하고 모드에 따라 모드를 설정합니다.

os.read(fd, n)

파일 설명자 fd에서 최대 n 바이트를 읽습니다. 읽은 바이트를 포함하는 문자열을 반환합니다. fd가 참조하는 파일의 끝에 도달하면 빈 문자열이 반환됩니다.

4

os.write(fd, str)

문자열 str을 파일 설명자 fd에 씁니다. 실제로 쓴 바이트 수를 반환합니다.