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에 씁니다. 실제로 쓴 바이트 수를 반환합니다. |