본문 바로가기
개발/python

python os 모듈, 알아두면 유용한 5가지 함수

by 왼하루 2022. 4. 6.
반응형

리눅스 혹은 macOS 시스템에서 파이썬으로 코딩할 때 자주 사용하는 os 라는 모듈이 있습니다. os 모듈은 운영체제에서 사용되는 여러 기능들을 파이썬 모듈로 제공하여 이를 쉽게 사용할 수 있도록 해줍니다. 특히 디렉토리나 파일을 접근할 때 유용하게 쓸 수 있습니다. 

 

 

유용한 파이썬 os 모듈 함수 5가지

os 모듈은 다양한 함수를 제공합니다. 그 중 유용하게 사용할 수 있는 5가지 함수를 소개해 보도록 하겠습니다.

  • os.getcwd()
  • os.path.exists()
  • os.mkdir()
  • os.listdir()
  • os.walk()

먼저 os 모듈을 사용하기 위해서는 os 를 import 해주어야 합니다.

 

import os

 

 

os.getcwd()

현재의 경로를 알기 위해 os.getcwd() 를 사용할 수 있습니다. 이는 리눅스에서 pwd 명령어를 입력하는 결과값과 동일한 값을 string 타입으로 리턴해줍니다.

 

import os

# 현재 경로를 string 타입으로 리턴
res = os.getcwd()
print(res)

 

 

os.path.exists()

현재 경로에 특정 파일이나 디렉토리가 존재하는지 여부를 확인할 때 사용합니다. 이는 리눅스에서 find -name 과 비슷하게 사용됩니다.

 

import os

# 현재 경로에서 "test" 라는 이름의 파일 혹은 디렉토리가 존재할 시 true 리턴
if os.path.exists("test"):
    print("test 존재")

 

 

os.mkdir()

디렉토리를 생성할 때 사용하는 함수 입니다. 리눅스에서 mkdir 명령어와 동일한 동작을 수행합니다.

 

import os

# test 라는 이름의 디렉토리 생성
os.mkdir("test")

 

 

os.listdir()

지정된 경로의 디렉토리에 존재하는 파일 혹은 디렉토리를 리스트로 반환합니다.

 

import os

# test 디렉토리 내의 디렉토리 혹은 파일명을 리스트 타입으로 리턴
dir_list = os.listdir("test")
print(dir_list)

 

아래를 보면 test 디렉토리에 sec_dir_1, sec_dir_2라는 이름의 하위 디렉토리가 존재합니다.

 

 

이 상태에서 코드를 실행하면 아래와 같이 리스트 타입의 결과값이 나옵니다.

 

['sec_dir_2', 'sec_dir_1']

 

 

os.walk()

지정된 경로의 디렉토리를 순차적으로 탐색하여 반복문으로 활용하고 싶을 때 os.walk() 함수를 사용합니다. os.walk()는 주로 반복문과 함께 사용합니다.

 

import os 

# test 디렉토리를 순차적으로 탐색하며 현재 디렉토리, 현재 디렉토리 내의 디렉토리들과 파일들을 순회한다.
for curDir, dirs, files in os.walk("test"): 
    print(curDir, dirs, files)
    for f in files:
    	print(os.path.join(curDir, f))

 

test 디렉토리는 아래와 같이 설정되어 있습니다.

 

 

test, test/sec_dir_2, test/sec_dir_1 3개의 디렉토리를 순차적으로 순회하며 file 이 존재 할 경우 현재의 디렉토리와 join 하여 경로를 출력한 결과값입니다.

 

test ['sec_dir_2', 'sec_dir_1'] []
test/sec_dir_2 [] ['sec_dir_2_a.txt', 'sec_dir_2_b.txt']
test/sec_dir_2/sec_dir_2_a.txt
test/sec_dir_2/sec_dir_2_b.txt
test/sec_dir_1 [] ['sec_dir_1_a.txt']
test/sec_dir_1/sec_dir_1_a.txt

 

 

마무리

파이썬 코딩을 하다보면 특정 디렉토리와 파일을 접근할 경우가 많습니다. 이 경우 os 모듈을 사용하면 보다 간단하고 다양한 경우의 수를 고려하여 코딩할 수 있습니다. 특히 위에 소개된 5가지 함수는 자주 사용되니, 기억해두시면 유용한 정보가 되리라 생각합니다.

 

오늘도 행복한 코딩생활 되시기 바랍니다. 감사합니다.

댓글