본문 바로가기
C++ 200제/코딩 IT 정보

[파이썬 입문] 모듈 패키지 - 빌트인 파일 이름 사용 예제

by vicddory 2019. 8. 26.

모듈 (module)

하나의 파이썬 스크립트 파일은 모듈로 취급할 수 있습니다. 모듈은 import 문으로 로드합니다. 읽은(로드한) 모듈의 클래스, 함수, 변수는 "모듈명.식별자"로 참조할 수 있습니다.


아래 프로그래밍 예제를 참조하세요.


1
2
def myfunc():
    print "Hello!"
cs


1
2
3
import mymod
 
mymod.myfunc()      #=> Hello!
cs


python 모듈의 시작 부분에는 """..."""를 이용해 파이썬 문서 문자열(도큐먼트 스트링)을 작성할 수 있습니다.


1
2
3
# coding: utf-8
"""A sample module"""
(생략)
cs

패키지 (package)

여러 모듈을 종합해 패키지로 처리할 수 ​​있습니다. python 패키지는 __init__.py라는 파일이 있는 폴더, 모듈은 .py 파일입니다. 


__init__.py에는 패키지 초기화 처리 방법을 기술합니다. 없으면 비워 두어도 괜찮습니다. 아래 파이썬 예제에는 mypack1 패키지에 mypack2 패키지가 있고, mypack2 패키지에 mymod.py 모듈이 배치되어 있습니다.


1
2
3
4
5
폴더 mypack1/
  파일 __init__.py
  폴더 mypack2/
    파일 __init__.py
    폴더 mymod.py
cs



가져오기 임포트 (import)

패키지 중에서 모듈이나 식별자(클래스, 함수, 변수 ...)를 Import (가져오려면) 하려면 아래와 같이합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# import 패키지. 모듈
import mypack1.mypack2.mymod
mypack1.mypack2.mymod.myfunc()
 
# from 패키지 import 모듈
from mypack1.mypack2 import mymod
mymod.myfunc ()
 
# from 패키지 import *
from mypack1.mypack2 import *    # __all__ 설정이 필요
mymod.myfunc ()
 
# from [패키지] 모듈 import 식별자
from mypack1.mypack2.mymod import myfunc
myfunc ()
 
# from [패키지] 모듈 import *
from mypack1.mypack2.mymod import *
myfunc ()
cs


위 프로그래밍 예제에서 "from package import *" 형식을 사용하려면, mypack2 패키지의 __init__.py 파일에 로드되는 모듈 목록을 __all__에 정의해야 합니다.


1
__all__ = ["mymod"]
cs


임포트(로드)할 모듈 및 파이썬 식별자 여러개를 기술할 수도 있습니다.


1
2
3
4
5
import mypack1.mypack2.mymod1, mypack1.mypack2.mymod2
from mypack1.mypack2 import mymod, mymod2
from mypack1.mypack2 import (mymod, mymod2)
from mypack1.mypack2.mymod import myfunc1, myfunc2
from mypack1.mypack2.mymod import (myfunc1, myfunc2)
cs


로드할 모듈 이름과 식별자에 별명을 붙일 수도 있습니다.


1
2
3
4
5
6
7
8
import mypack1.mypack2.mymod as mymod1
mymod1.myfunc()
 
from mypack1.mypack2 import mymod as mymod2
mymod2.myfunc()
 
from mypack1.mypack2.mymod import myfunc as myfunc1
myfunc1()
cs


from은 . 와 ..를 사용하여 파이썬 패키지 상대 경로를 잡을 수 있습니다.


1
2
3
4
5
6
7
8
9
10
11
# 이 패키지에서 mymod 모듈을 import
from . import mymod
 
# 한 계층 위의 패키지에서 mymod 모듈 import
from .. import mymod
 
# 두 계층 위의 패키지에서 mymod 모듈 import
from ... import mymod
 
# 두 계층 위 mypack4 패키지에서 mymod 모듈 import
from ...mypack4 import mymod
cs

패키지 이름 (__package__)

__package__ 는 현재의 python 패키지 이름을 나타냅니다.


1
print __package__
cs


파일 이름 (__file__)

__file__ 현재 python 파일 이름을 나타냅니다.


1
print __file__
cs


모듈 이름 (__name__)

__name__은 현재 모듈 이름을 나타냅니다. 스크립트로 시작되는 메인 모듈의 경우 __main__이라는 이름으로 설정됩니다. 아래 예제는 파일이 python 명령어로 직접 실행한 경우에만 수행할 작업 처리합니다.


1
2
if __name__ == "__main__":
    test()
cs


내장 모듈 빌트인 (__builtin__)

__builtin__는 open() 등의 python 내장(빌트인) 객체를 포함하는 가상 모듈을 나타냅니다.


1
2
3
4
import __builtin__
 
for line in __builtin__.open("test.txt"):
    print line
cs





파이썬 입문 강좌 11강


관련 글

[파이썬 입문 클래스] 인스턴스, 메소드, 상속 등 예제 총정리

[파이썬 입문] 연산자 - 산술 비트 대입 비교 논리 조건

[파이썬 입문] with assert pass del print exec 사용법

[파이썬 입문] 리스트 튜플 딕셔너리 (List, Tuple, dict)

[파이썬 입문] 자료형 문자열 각종 수식 정리

[파이썬 입문 함수] def, global, lambda, iterator, yield @ 사용 방법

댓글