TOP
class="layout-aside-left paging-number">
본문 바로가기
[파이썬 Projects]/<파이썬 기초>

[파이썬] os(Operating System) 모듈이란?

by 기록자_Recordian 2024. 9. 19.
728x90
반응형
다양한 기능을 제공하는 os 모듈

 

파이썬에는 기본적으로 제공되는 다양한 모듈이 있다. 이러한 모듈은 모두 유용하게 사용되지만 자주 사용되는 모듈 가운데 os라는 모듈이 있다. os 모듈은 Operating System의 약자로서 os 및 os.path 모듈에는 파일 시스템을 처리하는 수많은 함수가 있으며, 운영체제에서 제공되는 여러 기능을 파이썬에서 수행할 수 있게 해준다. 

출처: https://www.boardinfinity.com/blog/os-module-in-python/



예를 들어, 파이썬을 이용해 파일을 복사하거나 디렉터리를 생성하고 특정 디렉터리 내의 파일 목록을 구하고자 할 때 os 모듈을 사용하면 된다.

파이썬의 os 모듈은 운영 체제와 상호 작용하는 기능을 제공하기 때문에, 이 모듈을 사용하여 여러 가지 작업을 손쉽게 수행할 수 있다. os 모듈의 주요 목적은 프로그래밍 언어 수준에서 운영 체제의 기능에 접근하도록 도와주는 것이며, 이를 통해 파일 생성, 수정, 삭제, 디렉터리 작업, 환경 변수 관리 등의 작업을 수행할 수 있다.

앞서 말했듯이, os 모듈은 파이썬의 표준 라이브러리에 포함되어 있으므로 추가적인 설치가 필요하지 않고,

import os

 

위와 같은 import 문을 사용하여 간단하게 불러올 수 있다.


파이썬 os 모듈 사용의 예

 

1) 현재 작업 디렉토리 처리

Python 운영 디렉토리 또는 Current Working Directory(CWD, 현재 작업 중인 디렉터리)를 폴더라고 생각하고, Python은 이름으로만 호출될 때마다 파일이 CWD에서 시작한다고 가정하므로 이름만 참조하는 것은 파일이 Python의 CWD에 있는 경우에만 작동한다.

OS를 사용하여 현재 작업 디렉토리 가져오기
os.getcwd() 메서드를 사용하면 현재 작업 디렉토리를 가져올 수 있다.

import os cwd = os.getcwd() print( "현재 작업 디렉토리:" , cwd)

산출의 예 > 현재 작업 디렉토리: /home/taran/Desktop/

 

OS를 사용하여 현재 작업 디렉토리 변경
os.chdir() 메서드를 사용하면 현재 작업 디렉토리(CWD)를 변경할 수 있다. 이 기술은 CWD를 수정하여 미리 정해진 경로를 따른다. 새 디렉토리 경로는 필요한 유일한 인수이다.

import os def cwd (): print( "현재 작업 디렉토리" ) print(os.getcwd()) print() cwd() os.chdir( '../' ) cwd()

산출의 예 >

C:\Users\taran\Desktop 이전의 현재 작업 디렉토리 C:\Users\taran 이후의 현재 작업 디렉토리


2) 디렉터리 생성

OS 모듈을 사용하여 새 디렉토리를 생성할 수 있다. 이를 위해 os.mkdir() 또는 os.mkdirs() 함수를 사용할 수 있다.

os.mkdir()
os.makedirs()

 

◆ os.mkdir()를 사용하여 디렉토리 생성
지정된 숫자 모드로 path라는 디렉토리를 만들려면 Python의 os.mkdir() 메서드를 사용한다. 만들 디렉토리가 이미 있는 경우 이 메서드는 FileExistsError를 발생시킨다.

os.mkdir(경로, 모드 = 0o777 , *, dir_fd = 없음 )

 

os.mkdir()의 매개변수:
os.mkdir() 메서드는 아래 매개변수를 사용한다.

  • 경로: 파일 시스템 경로를 나타내는 객체. 경로를 나타내는 문자열 또는 바이트로 구성된 객체는 경로와 유사한 객체이다.
  • 모드(선택 사항): 새로 생성된 디렉터리의 모드를 나타내는 정수 값이다. 이 매개변수를 생략하면 Oo777이 기본값으로 사용된다.
  • dir fd(선택 사항): 디렉토리를 참조하는 파일 설명자. 이 매개변수의 기본값은 None이다. 지정된 경로가 절대 경로인 경우 dir fd는 사용되지 않는다.

◆ os.makedirs()를 사용하여 디렉터리 생성

Python의 os.makedirs() 메서드는 디렉터리를 재귀적으로 생성하는 데 사용된다. 즉, 리프 디렉터리를 생성할 때 중간 수준 디렉터리가 누락된 경우 os.makedirs() 메서드가 모든 디렉터리를 생성한다.

os.makedirs(경로, 모드 = 0o777 , exist_ok = False )

 

os.makedirs()의 매개변수:
os.makedirs() 메서드는 아래 매개변수를 사용한다.

  • 경로: 파일 시스템 경로와 유사한 객체. 경로를 나타내는 문자열 또는 바이트로 구성된 객체는 경로와 유사한 객체이다.
  • 모드(선택 사항): 디렉터리 모드를 나타내는 정수 값. 이 매개변수를 생략하면 Oo777이 기본값으로 사용된다.
  • Exist ok(선택 사항): 이 매개변수의 경우 기본값은 False. 값이 False이면 대상 디렉터리가 이미 존재하면 OSError가 발생하고, 그렇지 않으면 존재하지 않는다.

3) Python으로 파일 및 디렉터리 나열하기

주어진 디렉토리에 있는 모든 파일과 디렉터리 목록을 얻으려면 Python의 os.listdir() 메서드를 사용한다. 디렉터리가 지정되지 않으면 현재 작업 디렉터리에 있는 파일과 디렉터리 목록이 반환된다.

import os path = "/" list_dir = os.listdir(path) print( "파일 및 디렉터리 목록은 '" , path, "' :" ) print(list_dir)

산출 > '/' 에 있는 파일 및 디렉터리 : [ 'sys' , 'run' , 'tmp' , 'boot' , 'mnt' , 'dev' , 'proc' , 'var' , 'bin' , 'lib64' , 'usr' , 'lib' , 'srv' , 'home' , 'etc' , 'opt' , 'sbin' , 'media' ] 


4) 대량의 폴더 생성하기

 

 

[파이썬] 대량의 폴더 생성하기

수행 내용 및 목표 '타이어 제조사_브랜드 리스트'의 형태로 하나의 폴더의 대량의 하위 폴더를 생성하는 코드를 작성하여 실행한다.실행 현재 생성해야 할 폴더는 39개로 일일이 하기에는 너

puppy-foot-it.tistory.com


5) 폴더 내의 파일 분류시키기

 

 

[파이썬] 폴더 내의 파일 분류시키기

전이 학습을 위해 이미지를 폴더로 분류해야 하는데, 학습을 할 이미지가 있는 폴더에는 각 클래스의 이름을 딴 하위 폴더(예: 'tire' 및 'non_tire')가 포함되어야 하며 이러한 하위 폴더에는 이미

puppy-foot-it.tistory.com


6) 파일명 변경하기

 

 

[파이썬] 폴더 내의 여러 파일의 파일명 한 번에 바꾸기

수행 내용 및 목표 이전에 네이버에서 웹 스크래핑으로 이미지를 대량으로 다운 받아놓았는데, [이미지 웹스크래핑] 웹스크래핑으로 네이버에서 이미지 다운 받기수행 목적 및 내용 개인적으

puppy-foot-it.tistory.com

 

 

[파이썬] 파일명 변경하기 ver.2

특정 폴더 내의 파일에 확장자 외에도 전부 '.jpg' 라는 접미사가 붙어 있어, 확장자는 유지한 채 해당 접미사를 없애는 방식으로 파일명을 변경하는 코드를 작성import os# 이미지 파일이 저장된 폴

puppy-foot-it.tistory.com

 

[파이썬] 파일명 변경하기 ver.3

이번엔 접미사가 아닌'tire_image_42.jpg_non_tire''tire_image_45.jpg_tire'처럼 중간에 '.jpg' 가 붙어 있는 파일들의 파일명을 변경하려고 한다. import os# 바꿔야할 폴더 경로directory = r'C:\Users\niceq\Desktop\Startup-

puppy-foot-it.tistory.com


주요 함수

 

◆ os.getcwd( )
현재 작업중인 경로를 문자열로 돌려주는 getcwd( ) 함수.

 

◆ os.listdir( )

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

 

◆ os.chdir( )

원하는 경로를 현재 작업 경로로 변환해주는 함수.

 

os.removedirs( )

디렉터리를 제거하는 함수. 만들 때와 같이 제거하고자 하는 디렉터리의 경로를 써주면 된다.
만약 경로가 열려있거나 존재하지 않으면 에러가 발생하니 주의

 

os.remove( ) / os.unlink( )

파일을 삭제하는 함수. 두 함수 모두 같은 기능을 한다.

 

os.rename(path 1, path 2)

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

 

 os.name

현재 실행되고 있는 운영 체제의 이름을 반환하는 함수.

 

 os.system()

시스템 명령어를 직접 실행할 수 있는 함수.

 

 os.environ()

현재 환경 변수의 딕셔너리를 제공하는 함수.

 

그 외에도, os 모듈 공식 문서를 보면 os 모듈에는 정말 많은 함수들이 내장되어 있다.
https://docs.python.org/ko/3/library/os.html


[출처]

파이썬으로 배우는 알고리즘 트레이딩

사장님 몰래하는 파이썬 업무 자동화

Board Infinity

T스토리 블로그 '게으름의 흔적'

728x90
반응형