반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

 

오늘은 저번 시간에 배웠던 경로(path)와 디렉토리(directory)를 파이썬에서 다룰 수 있게 해주는 모듈os 모듈을 공부해보겠습니다.

 

혹시 경로와 디렉토리에 대한 개념을 정확히 모르신다면 지난 시간의 글을 읽고 오시면 이해에 도움이 되실 것 같아요!

 

2021.06.05 - [파이썬 기초/기초 문법] - [Python 기초] 파이썬으로 경로와 디렉토리 다루기(feat. 절대 경로와 상대 경로)

 


 

1. os 모듈 불러오기

 

os 모듈은 기본적으로 설치되어 있는 파이썬 내장 라이브러리에 포함된 모듈입니다. 참고로 파이썬 내장 라이브러리에는 우리가 자주 사용하는 sys, time, random 모듈도 있답니다.

 

이미 설치되어 있기에 간단하게 import 해주면 되겠습니다.

 

import os

 

보통은 import os로 많이 사용하지만 from os import *으로도 os 모듈을 사용할 수 있다는 것 알아만 두시면 좋을 것 같아요.

혹시 두 방식의 차이점이 무엇인지 궁금하신 분들은 아래의 글을 참고해주세요.

 

2021.05.24 - [파이썬 기초/기초 문법] - [python 기초] import OO와 from OO import*의 차이

 

 

2. os 모듈의 함수들

 

아래의 os 모듈 공식 문서를 보시면 os 모듈에는 정말 많은 함수들이 내장되어 있습니다.

 

https://docs.python.org/ko/3/library/os.html

 

os — 기타 운영 체제 인터페이스 — Python 3.9.5 문서

os — 기타 운영 체제 인터페이스 소스 코드: Lib/os.py 이 모듈은 운영 체제 종속 기능을 사용하는 이식성 있는 방법을 제공합니다. 파일을 읽거나 쓰고 싶으면 open()을 보세요, 경로를 조작하려면 o

docs.python.org

 

수 십 가지의 함수를 모두 공부하는 것은 너무나도 비효율적인 일이니, 제가 생각하기에 가장 많이 쓸만한 함수만 골라서 알려드리겠습니다.

 

 

1) os.getcwd( )

 

현재 작업중인 경로를 문자열로 돌려주는 getcwd( ) 함수입니다. 저의 경우는 실행한 파이썬 파일이 위치한 VSCODE BASIC이라는 디렉토리(폴더)의 경로를 출력해주는 것을 확인할 수 있습니다.

 

print(os.getcwd())

<결과>
>>> /Users/sangwoo/Desktop/VSCODE BASIC

 

 

2) os.mkdir( )

 

괄호 안에 '원하는 경로' + '/새로운 디렉토리'를 써주면 새로운 디렉토리가 생겨납니다. 만약 이미 있는 디렉토리를 생성해주려고 하면 에러가 발생하니 주의하세요.

 

os.mkdir("/Users/sangwoo/Desktop/test_mkdir")

 

<결과>

 

 

3) os.makedirs( )

 

os.mkdir( )과 비슷하지만 조금 다릅니다. 뭐랄까.. 디렉토리를 연달아서 적어주면 줄줄이 소세지 처럼 디렉토리가 생성됩니다.

 

os.mkdir("/Users/sangwoo/Desktop/test_mkdir/a/b/c")

 

<결과>

 

 

4) os.listdir( )

 

정말 많이 사용하는 함수인 해당 경로에 위치하는 파일, 디렉토리 이름(확장자 포함)을 리스트로 돌려주는 함수입니다.

 

# os.listdir("/디렉토리")

# 현재 작업 경로에 있는 파일, 디렉토리 리스트 얻기
print(os.listdir(os.getcwd()))

 

좌측의 실제 디렉토리 목록들이 터미널에 출력되는 것을 보실 수 있습니다. 가만보니 .DS_Store라는 이상한 친구가 끼어 있는데 뭔지 나중에 알아봐야겠네요.

 

 

5) os.chdir( )

 

원하는 경로를 현재 작업 경로로 변환해주는 함수입니다. 함수를 사용하기 전과 후의 경로 차이가 나는 것을 확인할 수 있습니다.

 

print(os.getcwd())
os.chdir("/Users/sangwoo/Desktop/")
print(os.getcwd())

<결과>
>>> /Users/sangwoo/Desktop/RPA BASIC
>>> /Users/sangwoo/Desktop

 

6) os.removedirs( )

 

함수 이름에서 알 수 있듯이 디렉토리를 제거하는 함수입니다. 만들 때와 같이 제거하고자 하는 디렉토리의 경로를 써주시면 됩니다.

만약 경로가 열려있거나 존재하지 않으면 에러가 발생하니 주의하세요.

 

os.removedirs("/Users/sangwoo/Desktop/test_mkdir/a/b/c")

 

<결과>

 

 

7) os.remove( ) / os.unlink( )

 

위의 removedirs( ) 함수가 디렉토리를 삭제하는 함수였다면 이 함수는 파일을 삭제하는 함수입니다. 두 함수 모두 같은 기능을 합니다.

 

os.remove("/Users/sangwoo/Desktop/test_mkdir/a/b/ex_hello.py")

 

<결과>

 

ex_hello.py 사라짐. (귀찮아서 결과 사진 안올린거 아님.. 암튼 아님..)

 

 

8) os.rename(path 1, path 2)

 

파일의 이름을 바꿔주는 함수입니다. 기존 파일의 경로와 바꾸고자 하는 파일명이 들어간 경로를 차례대로 써주시면 되겠습니다.

 

 


오늘 준비한 내용은 여기까지 입니다.

 

<참고 자료>

 

1. 점프 투 파이썬 (05-6 라이브러리)

https://wikidocs.net/33

 

2. yg's blog, [Python] os 모듈, 파일(file)과 디렉토리(directory)활용

https://yganalyst.github.io/data_handling/memo_1/

반응형

+ Recent posts