개발 이야기

[파이썬 완전정복] 운영체제 모듈 (os module) [1]

ANDYLION 2020. 6. 20. 00:31
728x90
반응형

이번에는 운영체제 모듈에 대해 공부해봅시다!

 

파이썬에서는 운영체제 모듈을 통해서

운영체제의 기본적인 기능을 사용할 수 있습니다.

예를 들어, 윈도우10에서 우리가 사용하는 명령어를 생각해봅시다.

파일을 외장디스크에 복사하거나 혹은 필요없는 파일을 삭제하거나

바탕화면 정리를 위해 폴더를 만들거나 하는 작업이 있습니다.

 

파이썬은 os 모듈을 통해 이러한 작업이 가능하도록 만들어 놨습니다.

그럼 os 모듈의 사용 방법과 주요함수를 공부해볼까요?

 

# Using os module
# step 1. import os module
import os

# getcwd() 현재 디렉토리 (current Dir)
print("현재 디렉토리 : ", os.getcwd())

# chdir('move dirname') dirname으로 이동 (move Dir)
os.chdir("c:\\example")
print("현재 디렉토리 : ", os.getcwd())

 

현재 나의 위치를 확인할 수 있으며,

해당 디렉토리로 이동하여 파일을 실행할 수도 있습니다.

 

이번에는 입력한 경로의 파일과 폴더 목록을

리스트로 반환하는 함수에 대해 알아보겠습니다.

# listdir( ) : 입력한 경로의 파일과 폴더 목록을 리스트로 반환

import os

print(os.listdir("C:/Users/LIM/Desktop/example"))

for i in os.listdir("C:/Users/LIM/Desktop/example") :
    print(i)

우리는 심심치 않게 디렉토리 안에 동일한 이름을 가진 파일이나 폴더를 만들 때

중복된 이름으로 만들어지지 않는 경우를 봤을 것입니다.

 

이와 같은 상황을 만들기 위해서는 폴더안에

파일이나 폴더가 존재하는지 여부를 찾아야합니다.

그래서 사용하는 함수가 os.path.exists( )입니다.

# os.path.exists( ) 특정 폴더가 있는지 확인하는 함수

import os

if os.path.exists("c:/users/lim/desktop/example/") == 1 :
	print("폴더가 존재합니다.")
else :
	print("폴더가 존재하지 않습니다.")


if os.path.exists("c:/users/lim/desktop/example/sample") == 1 :
	print("폴더가 존재합니다.")
else :
	print("폴더가 존재하지 않습니다.")

폴더가 존재하면 "폴더가 존재합니다."라는 메세지를 출력하고,

그렇지 않다면 "폴더가 존재하지 않습니다."라는 메세지를 출력하는 코드입니다.

 

# 폴더 생성과 삭제를 해주는 함수들

Function Name Role Description
mkdir ( ) 폴더 생성 +1 경로의 마지막 폴더만 생성 (만약, 폴더가 중간에 존재하지 않으면 에러)
makedirs ( ) 폴더 생성 +n 경로에 포함되어 있는 모든 폴더 생성 (경로 중간에 폴더가 존재하지 않으면 생성)
rmdir ( ) 폴더 삭제 +1 경로의 마지막 폴더만 삭제
removedirs ( ) 폴더 삭제 +n 경로에 포함된 모든 폴더 삭제
# import os module
import os

# mkdir( )
#c root surdir example create
os.mkdir("c:/example")

os.chdir("c:/example")
print(os.getcwd())

# import os module
import os

if os.path.exists("c:/sample") == 1 :
    print("sample 폴더가 존재한다.")
else :
    print("sample 폴더가 존재하지 않는다.")

# makedirs( )
os.makedirs("c:/sample/example") #sample과 example은 존재하지 않는다.
os.chdir("c:/sample/example")
print(os.getcwd())

이제 폴더를 생성해봤으니

생성한 폴더들을 삭제해보도록 하겠습니다.

# rmdir( ) and removedirs( )

import os

os.rmdir("c:/example") #마지막 경로 디렉토리만 삭제
os.removedirs("c:/sample/example") #디렉토리 전체 삭제

if os.path.exists("c:/example") == 1 : 
	print("example 폴더가 존재합니다.")
else :
	print("example 폴더가 존재하지 않습니다.")

if os.path.exists("c:/sample/") == 1 : 
	print("sample 폴더가 존재합니다.")
else :
	print("sample 폴더가 존재하지 않습니다.")

폴더가 정상적으로 삭제되어 폴더가 존재하지 않습니다.

이와 같이 os 모듈을 통해 subdir을 생성하여 파일들을 관리하고,

존재 유무에 따라 실행하는 형태를 정할 수 있습니다.

 

다음 시간에 운영체제 모듈 2탄에서는

다양한 형식의 파일 생성 및 수정, 삭제에 대해 알아보겠습니다.

728x90
반응형
SMALL