7.3.3 파일, 디렉터리, 운영체제 환경 다루기
프로그램을 작성하다 보면 파일 읽기, 수정, 생성 등 파일을 관리해야 할 때가 있다. 이때 유용하게 사용할 수 있는 패키지를 알아보자.
os 패키지는 운영체제를 다루기 위한 기능을 제공한다.
함수 |
설명 |
Chdir, Mkdir, MkdirAll, Getwd |
현재 작업 디렉터리 관리 |
Chmod, Chown |
파일 모드(mode)와 소유자(ownership) 변경 |
Chtimes |
파일 속성 관리 |
Environ, Getenv, Setenv, Unsetenv, Clearenv, ExpandEnv |
환경 변수 다루기 |
Create, Remove, Open |
파일/디렉터리 생성/제거 |
Stat, Lstat |
파일 속성 확인 |
Exit |
프로세스 종료 |
IsExist, IsNotExist, IsPermission |
에러 확인 |
Expand, Getgid, Getgroups, Getpagesize, Getpid, Getppid, Getuid |
기타 |
io 패키지는 io.Reader, io.Writer, io.Closer, io.Seeker 같은 인터페이스를 제공하고, 이를 활용하여 다양한 기능을 구현해 놓았다. io 패키지의 함수와 메서드 대부분은 인터페이스 기반으로 동작하므로 실제 기능이 구현된 타입과 함께 사용해야 한다. 이를테면 os.File 타입은 io.Reader와 io.Writer로 사용할 수 있다.
파일의 내용을 읽을 때 단순 텍스트 파일이 아니라면 보통 버퍼로 접근한다. bufio 패키지는 버퍼로 파일의 내용을 안전하게 읽고 쓰기 위한 기능을 제공한다.