본문 바로가기
Programming/Python

Python OS Library

by DUSTIN KANG 2024. 6. 4.

오늘 어떠한 툴을 만들면서 익숙하게 사용하지 않았던 Python으로 파일 시스템이나 OS를 다루는 모듈이 있어 정리해보고자 합니다.

glob

특정 확장자나, 파일 명 패턴이 담긴 파일들의 이름을 리스트화하는 라이브러리 입니다.

만약, 다음과 같은 파일이 있는 경우에 해당 이미지들의 패턴을 제시합니다. 공식문서↗

import glob

x = glob.glob('./data/stop*.jpg')
print(x)

# ['./data/stop7.jpg', './data/stop1.jpg', './data/stop4.jpg', './data/stop9.jpg', './data/stop8.jpg', './data/stop.jpg', './data/stop2.jpg', './data/stop10.jpg', './data/stop5.jpg', './data/stop6.jpg', './data/stop3.jpg']

Argparse

argparse는 터미널에서 인자에 대한 값을 지정할 때 사용합니다.

다음 예제를 보면 쉽게 확인할 수 있습니다. 다음과 같이 파이썬 파일을 생성합니다.

관련 내용은 아래 블로그나 공식 문서↗를 참고하세요.

# run.py
import argparse

parser = argparse.ArgumentParser()
parser.add_argument("-d", "--decimal", dest="decimal", action="store", help='입력 인자입니다.')
parser.add_argument("-f", "--fast", dest="fast", action="store_true", help='인자를 넣으면 True')
args = parser.parse_args()

print(args.decimal)
print(args.fast)

# 해당 예제는 https://wikidocs.net/73785#google_vignette 에서 가져왔습니다.

 

이후 터미널에서 다음 명령을 실행하면 `Hello` `True`가 실행되는 것을 확인할 수 있습니다.

python run.py -d Hello -f

 

  • `-h` 혹은 `--help` 인자를 넣으면 `.add_argument`에서 help 파라미터의 내용을 확인할 수 있습니다.
  • `.add_argument`에서 `default` 값을 지정하면 인자를 작성하지 않았을 때 None이 아닌 default가 입력됩니다.

os

파이썬의  os모듈 들은 운영체제와 상호 작용을 할 수 있는 기능들을 제공합니다.

`os.system("dir")` 시스템 명령어 실행 (`dir` 명령어 실행)
`os.environ['VAR'] = 'Hello' 환경 변수를 딕셔너리 형태로 저장 `.get()`으로 불러올 수 있음.
`os.listdir()` 디렉토리 목록을 리스트 형태로 반환
`os.stat(filepath)` 경로의 메타 정보를 반환합니다.
`os.path.join()` 새 경로 생성
   

pickle

pickle 모듈은 파이썬의 객체의 Serialization를 위한 바이트열 프로토콜을 구현합니다. 즉, 파이썬 객체를 바이트열 방식으로 디코딩하거나 반대로 복호화 하는 것을 말합니다. 공식문서↗

객체 저장하기 (`dump`)

import pickle
data = {
	"01" : "파이썬 프로그래밍",
	"02" : "데이터베이스" 
}
file = open("data.pickle", "wb") # 파일 객체 write binary
pickle.dump(data,file) # data를 file에 저장 저장
file.close()

 객체 읽기 (`load`)

import pickle
file = open("data.pickle","rb") # read binary
data = pickle.load(file) # 읽기
print(data)
file.close()

 

`file.close()`를 반드시 써서 닫아야한다는 단점이 있습니다. 이때, 예외가 발생하는 경우, `close()` 메서드가 호출되지 않을 수 있습니다.  이로 인한 자원 낭비를 막기 위해 `with` 구문을 사용하면 자동으로 호출할 수 있습니다. 보통 머신러닝 모델을 저장할 때 사용합니다.

with open('model.pkl', 'wb') as pickle_file:
	pickle.dump(model, pickle_file
    
    
model = None
with open('model.pkl','**rb**') as pickle_file:
   model = pickle.load(pickle_file)

 

sys

sys 모듈은 파이썬의 인터프리터를 제어하는 모듈입니다.즉, sys 자체가 파이썬 인터프리터라고 생각하시면 됩니다. 공식문서↗

import sys

print(sys.version_info) # 파이썬 인터프리터의 버전을 나타냅니다.

print(sys.path) # 파이썬의 환경변수(PYTHONPATH) 리스트를 출력합니다.

sys.path.insert(0, 'path/to/best') # 원하는 경로를 PYTHONPATH에 추가할 수 있습니다.

sys.argv # 터미널에서 파이썬 실행시 인자들을 리스트 형태로 보여줍니다.

# 여기서 실행시 인자들이란, python run.py plus 에서 'plus'를 의미합니다.

sys.exit() # 파이썬 코드를 중단하는 역할입니다. 이후에는 실행되지 않습니다.

☕️ 포스팅이 도움이 되었던 자료

오늘도 저의 포스트를 읽어주셔서 감사합니다.

설명이 부족하거나 이해하기 어렵거나 잘못된 부분이 있으면 부담없이 댓글로 남겨주시면 감사하겠습니다.