본문 바로가기

프로그래머/Python

[널널한 교수의 고급 파이썬] 05-3, 05-4 파이썬 표준 라이브러리

05-3 파이썬 표준 라이브러리1

파이썬 내장함수

  • 파이썬에서 사용되는 핵심적인 기능들은 함수로 미리 구현해 놓은 다음 파이썬 언어 인터프리터와 함께 배포하며 이를 파이썬의 내장함수라고 한다
  • 내장함수의 종류로는 sum(), max(), min(), str(), id(), type() 등이 있으며, 파이썬 개발에 필수적인 약 70여개의 함수들이 존재한다
  • 이 내장함수들은 별도의 import 문을 사용하지 않고 자유롭게 불러서 사용할 수 있다

파이썬 표준 라이브러리

  • 파이썬 라이브러리들은 여러 기관에서 개발하고 있는데 이들 중 파이썬 소프트웨어 재단에서 공인하여 파이썬 배포시에 함께 배포하는 라이브러리들을 파이썬 표준 라이브러리라고 한다
  • 파이썬 표준 라이브러리는 import문을 사용하여 불러와야 사용할 수 있다

텍스트 처리 관련 모듈

  • 문자열을 반환하거나 문자열의 패턴을 추출하는 기능, 두 텍스트 문자열을 비교하는 기능과 유니코드 문자를 처리하는 기능이 있다
  • string, re, difflib, texwrap, unicodedata, stringgrep, headline, rlcompleter

이진 데이터 처리 서비스 모듈

  • 파이썬의 자료형을 바이트 객체로 변환시키거나 암호화와 복호화 기능이 있다
  • struct, codecs

데이터 형태에 관련된 모듈

  • dataetime, calender, collections, collections.abc, heaps, bisect, array, weakref, types, copy, print, reprilib, enum 등과 같은 자료형이 있다
  • 이 자료형을 이용하여 날짜, 시간, 달력, 컨테이너, 힙, 큐, 배열 등의 여러 자료형을 효과적으로 다루는 모듈이 제공된다

수치 값 및 수학, 난수, 통계처리에 관련된 모듈

  • numbers, math, cmath, decimal, fractions, random, statistics

함수형 프로그래밍 모듈

  • 함수형 프로그래밍이란 컴퓨터 프로그램의 구조와 요소를 함수에 기반하여 작성하는 프로그래밍 패러다임이다
  • itertools, functools, operator

파이로가 디렉토리 관련 모듈

  • pathlib, os.path, fileinput, stat, filecmp
  • 파일과 디렉토리에 관련된 라이브러리로 tempfile, glob, fnmatch, linecache, shutil, macpath 등이 있다

05-3 파이썬 표준 라이브러리2

데이터 압축, 보존(아카이브) 관련 모듈

  • zlib, gzip, bz2, lzma, zipfile, tar file

파일 포맷 서비스 관련 모듈

  • csv, configparser, nitric, xrdlib, plistlib

암호 서비스 관련 모듈

  • hashlib, hmac, secrets

제너릭 운영체제 서비스 관련 모듈

  • os, io, time
  • 이 외에도 argparse, getopt, logging, getpass, curses, platform, errno, type 등이 있다

병렬처리 모듈

  • 쓰레드나 다중 프로세싱을 지원하는 모듈
  • 자바 언어의 경우 쓰레드 클래스와 Runnable 인터페이스를 제공하는데, 이것을 파이썬은 표준 라이브러리에서 지원한다
  • threading, multiprocessing, concurrent.futures, subprocess, sched, queue, _thread, _dummy_thread, dummy_threading 등이 있다

네트워킹과 프로세스간 통신 관련 모듈

  • 비동기 입출력이나 소켓통신, 비동기 소켓 핸들러, 비동기 핸들링을 지원하는 모듈들이 있다
  • asyncio, socket, ssl, select, selectors, asyncore, asynchat, signal, mmap 등이 있다

인터넷 데이터처리와 마크업 언어 관련 라이브러리

  • email, json, uu 인코드 등 인터넷 상의 정보교환에 사용되는 다양한 패키지가 있다
  • html과 같은 하이퍼 텍스트 마크업 언어를 지원한다
  • 파서, XML 등의 구조화 작업을 위한 다양한 모듈이 있다
  • webbrowser, cgi, cgitb, wsgiref, urllib, http 등 인터넷 프로토콜을 지원한다

멀티미디어 처리 관련 라이브러리

  • 다양한 오디오 파일과 이미지 파일을 처리하는 모듈이 있다
  • 다양한 언어를 지원하는 모듈로 locale이 있고, 터틀 그래픽, 커맨드 라인 명령어 번역기 등이 있다