[Python 파이썬] from 과 import 사용법 Python

import : transfer (data) into a file or document

import라는 것은 특정 데이터를 파일이나 문서로 들여오는 것을 말한다.

어느 언어이든지 import는 코드의 가장 상단에 위치하기 때문에, 개발자라면 당연히 익숙하시리라...

그럼 ! 오늘은 파이썬은 import를 어떻게 하는지 알아보자.


1. 같은 폴더에 존재하는 파이썬 파일 import
 
/home/a.py 에서 /home/b.py 를 import 하는 경우

============== a.py ==============
import b

그냥 위와같이 파일명을 import 하면 끝난다.


2. 다른 폴더에 존재하는 파이썬 파일 import

/home/a.py 에서 /data/python/b.py 를 import 하는 경우

============== a.py ==============
import sys
sys.path.insert(0, "/data/python/b.py")
import b

import 하고자 하는 파일의 directory를 system path에 넣어주어야 하기 때문에
먼저 sys 모듈을 import 하여 path에 원하는 directory를 추가해준뒤
원하는 파일을 import 한다.


3. 하위 폴더에 존재하는 파이썬 파일 import

/home/a.py 에서 /home/lib/b.py 를 import 하는 경우

/home/lib/__init__.py 를 만들어준다. (내용은 없어도 상관없음)

============== a.py ==============
import lib.b

import 하고자 하는 파일이 위치한 directory를 import 구문에서 직접접근 하고 싶다면
해당 directory에 __init__.py 파일을 작성해주어야 한다.
그러면 폴더를 .(점) 단위로 구분하여 파일을 부를 수 있다.


4. Class 또는 Function 만 import하기

여기서는 파일내부의 특정 코드만을 import 하는 방법 2가지를 한꺼번에 설명한다.

/home/a.py 에서 /home/b.pyHuman Class를 import 하는 경우

/home/a.py 에서 /home/c.pygetName Function을 import 하는 경우

/home/a.py 에서 /home/lib/d.py 의 getHometown Function을 import 하는 경우

============== b.py ==============

class Human:
def __init__(self, name):
self.name = name

def getName(self):
return self.name

============== c.py ==============

def getName():
return "양파개발자"

============== d.py ==============

def getHometown():
return "전주"


※ /home/lib/__init__.py 생성 후
============== a.py ==============

from b import Human
from c import getName
from lib.d import getHometown

human = Human("Jack")
print human.getName()
print getName()
print getHometown()


덧글

  • ㅇㅇ 2016/07/14 08:24 # 삭제

    님 path 가 os 안에 있는거잖아요. 근데 import os 한 후에 path.exists('adsf') 하면 없다고 에러나는데 from os import path 하면 에러가 안나요. 이유가 뭔가요
  • 졸린미어캣 2016/07/14 16:20 #

    import os 라고 쓰시게 되면 os 라는 단일 객체를 통째로 import 하신 겁니다.
    그래서 그 안에 path 라는 것을 사용하기 위해서는 아래쪽에서 os.path 로 사용하셔야 됩니다.

    from os import path 라는 것은 os 라는 빌트인(내장) 변수로부터 path 라는 변수하나만을 import 하겠다는 뜻입니다.
    path 가 직접적으로 import 되었으니, 사용하실때 path 로 바로 사용하실 수 있는거구요 ㅎㅎ
※ 로그인 사용자만 덧글을 남길 수 있습니다.


통계 위젯 (블랙)

6145
703
304559

GoogleAdsenseResponsive

Cluster map