파이썬에서 os와 관련된 기능을 수행할 수 있는 os 모듈의 사용법에 대해서 알아보도록 하겠다.
파이썬 os 모듈에 대해서 알아보자
os 명령어와 관련된 것들을 실행할 수 있는 모듈이다. 주로 디렉터리와 PATH, 환경변수와 관련된 내용들을 다룰 수 있다. 프로젝트를 만들고 실행하고 하는 동작을 수행할 때 임시 디렉터리를 만들거나 완료된 디렉터리를 지우거나 실행하는 디렉터리를 항상 동일하게 이동해서 실행한다거나 하는 등의 동작을 할 때 활용할 수 있는 모듈이다.
os.getcwd()
current working directory의 약자로, 현재 실행되고 있는 directory의 주소를 str으로 return한다. 현재 실행하고 있는 절대 경로를 저장하고 이를 통해 각 유저나 어느 디렉터리에서 실행하더라도 동일한 환경을 보장하도록 할 때 유용할 것이다.
import os
if __name__ == '__main__':
cwd = os.getcwd()
print(type(cwd))
print(cwd)
os.listdir()
현재 디렉토리에 있는 파일들과 하위 디렉터리를 list의 형태로 반환한다. 현재 경로에 원하는 파일이 포함되어 있는지 확인하거나 로그 등을 출력할 때 활용할 수 있을 것이다.
import os
if __name__ == '__main__':
ld = os.listdir()
print(type(ld))
print(ld)
os.mkdir()
디렉토리를디렉터리를 생성할 때 사용되는 명령어이다. 프로그램이 실행되면서 필요한 디렉터리를 만들 때 활용하면 된다.
아래는 make_dir이라는 디렉토리를 만든 결과이다. listdir을 활용해서 바로 위에서 확인한 list에서 make_dir이라는 디렉터리가 생성된 것을 확인할 수 있다.
import os
if __name__ == '__main__':
os.mkdir("make_dir")
print(os.listdir())
os.chdir()
위에서 생성한 make_dir 디렉토리로 이동하기 위해 os.chdir("make_dir")을 실행한 결과를 나타내보았다. chdir을 실행 후 os.getcwd()를 통해 현재 디렉터리가 make_dir로 이동된 것을 확인할 수 있다.
import os
if __name__ == '__main__':
os.chdir("make_dir")
print(os.getcwd())
os.rmdir()
os.rmdir()을 통해 원하는 디렉토리를 지울 수도 있다. 아래는 test라는 디렉터리를 만들고 출력한 다음 다시 지우고 출력하는 코드이다. test라는 디렉터리가 생겨났다가 없어진 것을 확인할 수 있다.
import os
if __name__ == '__main__':
os.mkdir("test")
print(os.listdir())
os.rmdir("test")
print(os.listdir())
os.path
아래 보는 바와 같이 os.path의 type을 읽어보면 class module이라고 뜬다. 즉 os.path는 현재 경로와 관련된 주요한 기능들을 모아놓은 os 하위의 또 다른 모듈이라고 이해하면 될 것이다.
import os
if __name__ == '__main__':
path = os.path
print(type(path))
print(path)
os.path를 활용하면 다양한 것을 할 수 있는데, 주요한 기능들은 아래와 같다.
- os.path.exists : 파일 존재 여부 확인
- os.path.isdir : 디렉토리인지 확인
- os.path.abspath : 절대 경로 확
- os.path.isfile : 파일인지 확인
- os.path.getsize : 사이즈 확인
import os
if __name__ == '__main__':
path = os.path
print(path.exists("main.py"))
print(path.isdir("main.py"))
print(path.abspath("main.py"))
print(path.isfile("main.py"))
print(path.getsize("main.py"))
main.py를 기준으로 모두 출력해보았다. main.py는 존재하므로 True, 디렉터리는 아니어서 False, 절대 경로는 위와 같고 file이므로 True, 마지막 파일 사이즈는 229바이트이다.
os.environ()
시스템 환경변수를 활용할 수 있는 기능이다.
import os
if __name__ == '__main__':
env = os.environ
print(type(env))
print(env)
아래와 같이 PATH를 뽑아보고 싶을 때 os.environ['PATH'] 와 같은 형태로 뽑아볼 수 있고 os.getenv('PATH')로 뽑아 볼 수도 있다.
import os
if __name__ == '__main__':
env = os.environ
print(env['PATH'])
print(os.getenv('PATH'))
결론
sys와 마찬가지로 os 모듈 또한 프로그램을 작성할 때 환경과 관련하여 꽤나 필요한 필수적인 모듈이라고 할 수 있다. os와 sys가 조금 헷갈리긴 하지만 잘 활용해서 실행되는 상황이나 환경에 의존적이지 않은 코드를 만드는 게 중요하다고 할 수 있겠다.
'개발 > Python' 카테고리의 다른 글
[Python] 파이썬 pytest의 test fixture를 활용해보자 (2) | 2023.03.01 |
---|---|
[Python] 파이썬 pytest를 활용해서 테스트 해보자 (0) | 2023.02.28 |
[Python] 파이썬 sys 모듈에 대해서 알아보자 (0) | 2023.02.23 |
[Python] TDD를 활용한 파이썬 unittest 사용 방법과 예제 (0) | 2023.02.20 |
[Python] time 모듈을 활용해서 성능 측정 하기 (feat. factorial) (0) | 2023.02.19 |