본문 바로가기
개발공부/Python : 파이썬

파이썬 훑어보기 7 - 모듈

by 개발자D 2024. 12. 21.

파이썬 훑어보기 7 - 모듈

모듈

파이썬의 모듈은 비슷한 용도로 사용되는 여러 함수와 변수를 담은 하나의 .py 파일입니다. 모듈에는 파이썬에 내장된 표준 모듈과 그 외의 외부 모듈이 있습니다. 모듈을 사용하면 복잡한 내용을 직접 구현하지 않고도 쉽게 사용할 수 있으며, 코드 재사용이 간단해집니다. 이미 만들어진 모듈을 사용하는 것도 가능하지만, 모듈을 직접 만들어서 사용할 수도 있습니다. 


모듈은 라이브러리와 같은 개념일까요?

모듈은 라이브러리보다 작은 개념입니다. 모듈은 하나의 .py 파일이지만 라이브러리는 여러 모듈과 패키지를 포함하는 개념이기 때문입니다. 모듈이 모여 패키지가 되고, 모듈들과 패키지들을 모으면 라이브러리가 됩니다.

 

모듈 < 패키지 < 라이브러리

 

모듈 가져오기

모듈을 가져오고 싶은 파일의 가장 상단에 다음과 같이 입력합니다. 

import 모듈 이름

# 모듈의 변수와 함수 사용시 [모듈 이름.] 을 명시해야합니다. 

from 모듈 이름 import 사용할 변수 또는 함수

# [모듈 이름.] 을 생략할 수 있습니다.

from 모듈 이름 import *

# 모듈의 모든 내용을 가져옵니다.

import 모듈 이름 as 별칭

# 모듈 이름 대신 별칭을 사용할 수 있습니다.

import 패키지.모듈 이름

# 패키지의 모듈을 가져옵니다.

 

표준 모둘

 

파이썬에서 가장 많이 쓰이는 표준 모듈과 함수들입니다.

 

os : 운영 체제와 상호작용 

 

 

  • os.getcwd() - 현재 작업 디렉터리 반환.
  • os.chdir(path) - 작업 디렉터리 변경.
  • os.mkdir(path) - 새 디렉터리 생성.
  • os.remove(path) - 파일 삭제.
  • os.listdir(path) - 디렉터리 내 파일/디렉터리 목록 반환.

 

sys : 파이썬 인터프리터와 상호작용 

 

  • sys.argv - 명령줄 인수 리스트.
  • sys.exit([arg]) - 프로그램 종료.
  • sys.version - 파이썬 버전 정보.
  • sys.path - 모듈 검색 경로 리스트.
  • sys.platform - 실행 중인 플랫폼 정보.

 

math : 수학 연산

 

  • math.sqrt(x) - 제곱근 계산.
  • math.pow(x, y) - x의 y 제곱.
  • math.sin(x) - 사인 값 계산 (라디안 단위).
  • math.log(x, [base]) - 로그 계산 (기본은 자연로그).
  • math.ceil(x) - 올림값 반환.

 

random : 난수 생성 및 샘플링

  • random.randint(a, b) - a와 b 사이의 정수 반환.
  • random.random() - 0과 1 사이의 난수 반환.
  • random.choice(seq) - 시퀀스에서 임의의 요소 선택.
  • random.shuffle(seq) - 시퀀스 섞기.
  • random.sample(seq, k) - 시퀀스에서 k개의 요소를 비복원 추출.

datetime : 날짜와 시간 처리.

  • datetime.datetime.now() - 현재 날짜와 시간 반환.
  • datetime.datetime.strptime(date_string, format) - 문자열을 날짜 객체로 변환.
  • datetime.datetime.strftime(format) - 날짜 객체를 문자열로 변환.
  • datetime.timedelta(days=1) - 날짜 간격 계산.
  • datetime.date.today() - 오늘 날짜 반환.

json : JSON 데이터 읽기/쓰기.

 

  • json.load(fp) - 파일에서 JSON 읽기.
  • json.loads(s) - 문자열에서 JSON 읽기.
  • json.dump(obj, fp) - 객체를 JSON 파일로 저장.
  • json.dumps(obj) - 객체를 JSON 문자열로 변환.
  • json.JSONDecodeError - JSON 디코딩 오류 처리.

 

logging : 애플리케이션 실행 중 로그 기록.

  • logging.basicConfig(**kwargs) - 로그 초기 설정.
  • logging.info(msg) - 정보 로그 기록.
  • logging.debug(msg) - 디버그 로그 기록.
  • logging.warning(msg) - 경고 로그 기록.
  • logging.error(msg) - 에러 로그 기록.

 

 

외부 모듈

파이썬의 가장 유명한 외부 모듈들로는 NumPy, Pandas, Matplotlib, Requests, Flask, Django, scikit-learn, TensorFlow 등이 있습니다.

 

 

  • NumPy: 배열 및 수학 연산을 위한 라이브러리.
  • Pandas: 데이터 분석과 데이터 프레임 조작을 위한 라이브러리.
  • Matplotlib: 데이터 시각화를 위한 라이브러리.
  • Requests: HTTP 요청을 간단히 처리할 수 있는 라이브러리.
  • Flask: 가벼운 웹 프레임워크.
  • Django: 강력하고 확장 가능한 풀스택 웹 프레임워크.
  • scikit-learn: 머신러닝 모델 개발을 위한 라이브러리.
  • TensorFlow: 딥러닝 및 신경망 모델 개발을 위한 라이브러리.

 

 

외부 모듈 설치하기

window + R + cmd 입력 혹은 윈도우 작업 표시줄의 찾기 + cmd 입력으로 명령 프롬프트 창을 열어 다음 명령어를 입력합니다.

pip install 모듈 이름

 

오류 :  ['pip'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.]

환경 변수 설정이 되어 있지 않아서 발생합니다. 사용자 변수에서 'Path'를 찾아 더블클릭 후 새로 만들기를 한 후에 pip.py가 있는 위치를 넣어줍니다.

 

pycharm에서 외부 모듈 추가하기

Pycharm Settings

 

File > Settings > Project: ~ > Python Interpreter > + > 검색 > 원하는 모듈 선택 > install Package

 

 

모듈에서 if __name__ == "__main__": 의 의미

파이썬 코드에서 사용되는  __name__ 변수는 엔트리 포인트에서 "__main__"이라는 값을 갖습니다.

따라서 if __name__ == "__main__"은 코드를 실행시킨 파일이 엔트리 포인트인지 구분하는 코드입니다.

 

만약, 엔트리 포인트가 아니라면 __name__ 변수는 해당 파일의 이름을 값으로 갖습니다.

 

모듈을 import 하는 순간 모듈 파일의 코드가 실행됩니다. 모듈 import로 코드 실행을 막기 위해서 if __name__=="__main__"과 같은 조건문을 사용합니다.