🎉 berenickt 블로그에 온 걸 환영합니다. 🎉
Lang
python
10-모듈과 패키지

1. 모듈 다루기

1
import theater_module # 모듈 가져오기
2
3
theater_module.price(3) # 3명이 영화를 보러 갔을 때 가격
4
theater_module.price_morning(4) # 4명이 조조 영화를 보러 갔을 때 가격
5
theater_module.price_soldier(5) # 군인 5명이 영화를 보러 갔을 때 가격
6
7
import theater_module as mv # theater_module을 별명인 mv로 사용한다는 의미
8
9
mv.price(3)
10
mv.price_morning(4)
11
mv.price_soldier(5)
12
13
from theater_module import * # theater_module에서 모든 기능을 가져와 사용함
14
15
price(3) # theater_module.을 작성할 필요 없음
16
price_morning(4)
17
price_soldier(5)
18
19
from theater_module import price, price_morning # 모듈에서 일부 함수만 가져와 사용함
20
21
price(5) # 5명
22
price_morning(6) # 6명
23
price_soldier(7) # import하지 않아서 사용 불가
24
25
# price_soldier를 별명인 price로 대체 사용
26
from theater_module import price_soldier as price
27
28
price(5) # price_soldier() 함수 호출

2. 패키지 다루기

1
import travel.thailand # travel 패키지의 thailand 모듈 가져오기
2
3
trip_to = travel.thailand.ThailandPackage()
4
trip_to.detail()
5
6
"""
7
import travel.thailand.ThailandPackage # 클래스 import 불가
8
9
trip_to = travel.thailand.ThailandPackage()
10
trip_to.detail()
11
"""
12
13
# travel.thailand 모듈에서 ThailandPackage 클래스 가져오기
14
from travel.thailand import ThailandPackage
15
16
trip_to = ThailandPackage() # from~import 문에서는 travel.thailand. 제외
17
trip_to.detail()

3. 모듈

3.1 모듈 공개 설정 -__all___

1
from travel import *
2
3
trip_to = vietnam.VietnamPackage() # 베트남
4
# trip_to = thailand.ThailandPackage() # 태국
5
trip_to.detail()

3.2 모듈 직접 실행

1
from travel import *
2
3
trip_to = thailand.ThailandPackage()
4
trip_to.detail()

4. 패키지, 모듈 위치 확인

1
import inspect # 현재 모듈의 위치 확인하는 모듈
2
import random
3
4
print(inspect.getfile(random)) # random 모듈 위치(경로)
5
6
import inspect
7
from travel import *
8
9
print(inspect.getfile(thailand)) # thailand 모듈 위치

4.2 패키지 설치

1
from bs4 import BeautifulSoup
2
3
soup = BeautifulSoup("<p>Some<b>bad<i>HTML")
4
print(soup.prettify())

5. 내장함수 사용

1
language = input("어떤 언어를 좋아하세요? ")
2
print("{0}은 아주 좋은 언어입니다!".format(language))
3
4
print(dir())
5
import random # random 모듈 가져다 쓰기
6
7
print(dir())
8
import pickle # pickle 모듈 가져다 쓰기
9
10
print(dir())
11
12
import random
13
14
print(dir(random))
15
16
lst = [1, 2, 3]
17
print(dir(lst))
18
19
name = "Jim"
20
print(dir(name))

6. 외장함수 사용

6.1 glob

1
# 파이썬 외장함수 리스트 https://docs.python.org/3/py-modindex.html
2
# glob : 경로 내의 폴더 / 파일 목록 조회 (윈도우 dir)
3
import glob
4
5
print(glob.glob("*.py")) # 확장자가 py인 모든 파일 출력

6.2 os

1
# os : 운영체제에서 제공하는 기본 기능
2
import os
3
4
print(os.getcwd()) # 현재 작업 폴더 위치(경로)
5
6
folder = "sample_dir"
7
8
if os.path.exists(folder): # 같은 이름의 폴더가 존재한다면
9
print("이미 존재하는 폴더입니다.")
10
os.rmdir(folder) # 폴더 삭제
11
print(folder, "폴더를 삭제했습니다.") # 삭제 문구 출력
12
else: # 폴더가 존재하지 않으면
13
os.makedirs(folder) # 폴더 생성
14
print(folder, "폴더를 생성했습니다.")
15
16
print(os.listdir()) # 현재 작업 폴더 안의 폴더와 파일 목록 출력

6.3 time

1
import time
2
3
print(time.localtime())
4
print(time.strftime("%Y-%m-%d %H:%M:%S")) # 연-월-일 시:분:초
5
6
import datetime
7
8
print("오늘 날짜는", datetime.date.today())
9
today = datetime.date.today() # 오늘 날짜 저장
10
td = datetime.timedelta(days=100) # 100일째 날짜 저장
11
print("우리가 만난 지 100일은", today + td) # 오늘부터 100일 후 날짜

7. 퀴즈. 나만의 모듈 만들기

1
"""
2
Quiz) 프로젝트 내에 나만의 시그니처를 남기는 모듈을 만드시오
3
4
조건 : 모듈 파일명은 byme.py로 작성
5
6
(모듈 사용 예제)
7
import byme
8
byme.sign()
9
10
(출력 예제)
11
이 프로그램은 나에 의해 만들어졌습니다.
12
"""
13
import byme
14
15
byme.sign()
1
def sign():
2
print("이 프로그램은 내가 만들었습니다.")
3
print("유승우")