바뀜

6,260 바이트 추가됨 ,  2021년 4월 19일 (월) 21:16
편집 요약 없음
1번째 줄: 1번째 줄: −
[[분류:라이브러리]]
+
 
 +
==개요==
 +
파이썬 모듈이라고도 한다.(사용하는 용어가 애매하다. 일반적으로 라이브러리가 더 큰 개념이고, 라이브러리 안에 모듈이 있다고 이해하면 좋다.)
 +
 
 +
서브루틴, 함수들의 모음.
 +
===정의===
 +
.py 확장자를 갖는 파일을 모듈이라 하며, 이들을 특정 디렉토리에 모아둔 것을 패키지라 부른다. 그리고 모듈 혹은 패키지를 라이브러리라 부르기도 한다.
 +
*표준 라이브러리 : 설치 없이 import 가능한 것들.
 +
*외부 라이브러리 : 설치한 후 사용.
 +
===현재 설치된 라이브러리 확인===
 +
현재 설치된 라이브러리는 help('modules')로 확인 가능. help('모듈명')으로 상세설명을 볼 수 있다.
 +
===모듈 설치 관련===
 +
pip을 사용한다.(Python Install Package의 약자.)
 +
 
 +
오픈소스 저장소에 있는 패키지를 관리하는 명령이다.
 +
{| class="wikitable"
 +
!의도
 +
!방법
 +
!설명
 +
|-
 +
|pip 업데이트
 +
|python -m pip install --upgrade pip
 +
|프롬프트에서 진행한다.
 +
|-
 +
|모듈설치
 +
|pip install 패키지명
 +
|패키지를 설치하면 파이썬의 site-packages에 패키지의 디렉터리가 생긴다.
 +
(가상환경의 Lib 안에 있다.)
 +
|-
 +
|모듈업그레이드
 +
|pip install 패키지명 --upgrade
 +
|
 +
|}
 +
===이외===
 +
{| class="wikitable"
 +
!의도
 +
!방법
 +
!설명
 +
|-
 +
|설치된 라이브러리 표시
 +
|pip list
 +
|현재 가상환경에 설치된 라이브러리를 표시해준다.
 +
|}
 +
==사용법==
 +
함수의 이름이 같으면 기존 함수를 덮어쓴다.
 +
 
 +
라이브러리 내의 함수를 사용하려면 <code>모듈명.함수명()</code> 형태로 사용한다.(모듈 내에 정의되어 있음을 알려주기 위해.
 +
===모듈사용===
 +
{| class="wikitable"
 +
!의도
 +
!방법
 +
!설명
 +
|-
 +
| rowspan="4" |모듈 사용
 +
|import 모듈명
 +
|import는 모듈 자체를 불러오는 방식이다.
 +
모듈 내의 함수는 다음과 같이 사용할 수 있다. 모듈명.함수명(변수)
 +
 
 +
<code>import 패키지명.모듈명</code> 형태로 필요한 하위요소만 불러올 수 있다.
 +
|-
 +
|form 모듈명 import *
 +
|from은 모듈의 함수(메서드)만을 불러오는 방식이다.
 +
모듈 내의 모든 것을 불러온다. 모듈 이름 없이 내용을 이름 그대로 사용할 수 있다. 모듈 내의 함수를 이름 그대로 사용할 수 있지만, 기존 함수와 충돌할 수 있다.
 +
 
 +
'*' 대신 함수명을 쓰면 해당 함수만 불러올 수 있다. <code>,</code>로 구분하여 여러 개를 불러올 수도 있다.
 +
|-
 +
|from .경로명 import 모듈명
 +
|상대경로방식. '.'으로 현재경로 안에 있는 파일임을 알려준다.
 +
'.'은 현재경로, '..'은 상위경로를 의미한다.
 +
|-
 +
|import 모듈명 as 바꿀이름명
 +
|모듈명이 너무 긴 경우, 모듈의 이름을 바꾸어 임포트 할 수 있다. 모듈의 이름이 길 때 짧게 줄여 사용하기 위함.
 +
바꿀이름명.함수명(변수) 형태로 이용 가능.
 +
|-
 +
|모듈 주소 파악
 +
|모듈명을 쓰면 모듈의 경로를 알 수 있다.
 +
|
 +
|-
 +
|모듈에 정의된 함수, 변수 파악
 +
|dir(모듈명)
 +
|
 +
|}
 +
==팁==
 +
{| class="wikitable"
 +
|+
 +
!자체변수
 +
!설명
 +
!예시
 +
!
 +
|-
 +
|__name__
 +
|파이썬 파일이 직접 실행된 것인지, 다른 파일에서 임포트 된 것인지 판단하기 위한 용도.
 +
자체실행이라면 __main__이 바인딩되고, 임포트된 경우엔 파일명이 바인딩된다.
 +
 
 +
일반적으로 모듈을 테스트하기 위한 용도로, 임포트 되었을 때엔 호출되지 않게 할 때 쓰인다.
 +
|<syntaxhighlight lang="python">
 +
if __name__=="__main__":
 +
    print("잘 되는지 테스트")
 +
</syntaxhighlight>
 +
|
 +
|-
 +
|
 +
|
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|
 +
|
 +
|}
 +
=라이브러리 종류=
 +
목차가 너무 길어질 듯해 앞으론 여기에 추가해 넣도록 하겠다.
 +
===기능===
 +
{| class="wikitable"
 +
!사용
 +
!라이브러리
 +
!설명
 +
|-
 +
|성능 측정
 +
|[http://id8436.iptime.org:8080/mediawiki/index.php/%ED%8C%8C%EC%9D%B4%EC%8D%AC:timeit timeit]
 +
|어떤 방식이 성능에 유리할지 측정한다.
 +
|-
 +
|변수 저장
 +
|piclkle
 +
|특정 객체(변수)의 값을 바이너리로 저장한다.(추후에 다시 사용하기 위해)
 +
|}
 +
{| class="wikitable"
 +
!사용
 +
!라이브러리
 +
!설명
 +
|-
 +
|
 +
|
 +
|
 +
|-
 +
|금융데이터 차트
 +
|[http://id8436.iptime.org:8080/mediawiki/index.php/Mplfinance mplfinance]
 +
|금융 관련 차트를 그린다.
 +
|-
 +
|이미지 관리
 +
|pillow
 +
|이미지 열기, 파일의 정보 따위를 열람할 수 있다.
 +
|-
 +
|
 +
|
 +
|
 +
|}
 +
===웹 관련===
 +
{| class="wikitable"
 +
!사용
 +
!라이브러리
 +
!설명
 +
|-
 +
|URL 다루기
 +
|urllib
 +
|url을 다루는 모듈을 모아둔 패키지. 다양한 모듈을 포함하고 있다.
 +
|-
 +
|HTML 크롤링
 +
|[http://id8436.iptime.org:8080/mediawiki/index.php/Beautifulsoup4 beautifulsoup4]
 +
|웹 크롤링.
 +
#HTML을 가져오고
 +
#이 안에서 의미 있는 데이터를 뽑아내는 게 일반적인 절차.
 +
뷰티플 스프는 2번에 해당되는 일을 처리한다.
 +
|-
 +
|HTML 동적 크롤링
 +
|[http://id8436.iptime.org:8080/mediawiki/index.php/Selenium selenium]
 +
|동적 웹사이트에선 beautifulsoup만으로는 정보를 긁어오지 못한다. 사전에 셀레니움으로 작업을 해주어야 한다.
 +
|}
 +
===엑셀 조작===
 +
엑셀조작을 다음 라이브러리들을 이용해 개별적으로 직접 사용해도 되지만, 보통은 판다스를 이용해 데이터를 다룬다.
 +
{| class="wikitable"
 +
!라이브러리
 +
!설명
 +
|-
 +
|xlrd
 +
|
 +
|}필요와 특성에 따라 사용하면 됨.
 +
 
 +
=패키지 만들기=
 +
디렉터리 안에 .py 파일을 넣는다.(디렉터리명이 패키지명이 된다.)
 +
===공통규약===
 +
====파일 및 디렉토리====
 +
{| class="wikitable"
 +
|+
 +
!
 +
!
 +
|-
 +
|__init__.py
 +
|이 파일이 있으면 파이썬은 해당 디렉터리를 패키지로 인식한다.(없어도 인식을 하긴 하나, 모든 기능을 다 활용할 순 없음)
 +
|-
 +
|__pycache__ 디렉터리.
 +
|(가상환경 패키지를 설치했다면 가상환경 디렉토리 안에 생기는 듯.)
 +
패키지를 임포트하는 순간 생기는 디렉터리. 이 안에 .pyc 파일이 생긴다.(다음번에 임포트할 때 컴파일 작업을 생략해 속도를 올리기 위함.)
 +
|}
 +
====메서드====
 +
{| class="wikitable"
 +
!
 +
!
 +
|-
 +
|__file__
 +
|임포트한 모듈의 실제 파일 위치가 담겨있다.
 +
|}
 +
[[분류:기초]]
익명 사용자