자주 사용되는 라이브러리
1. 자주 사용되는 라이브러리
Python은 다양한 라이브러리를 제공합니다. 이러한 라이브러리를 사용하면 프로그램을 더 쉽게 작성할 수 있습니다. 어떤 코드를 작성하기 전 라이브러리를 찾아보는 것이 좋습니다. 라이브러리를 사용하면 코드를 더 간결하게 작성할 수 있고, 더 빠르게 작업을 수행할 수 있습니다. 이번 장에서는 자주 사용되는 라이브러리를 소개하겠습니다.
1.1 os 모듈
운영체제와 상호작용하는 데 사용되는 함수들을 제공합니다. 파일과 디렉토리를 만들고, 읽고, 쓰는 것을 비롯하여 환경 변수에 접근하거나 운영 체제 명령을 실행하는 등의 작업을 수행할 수 있습니다.
import os
os.mkdir('licat') # licat이란 폴더 생성, 삭제는 os.rmdir()
os.getcwd() # 현재 경로 반환
os.open('a.txt', os.O_CREAT | os.O_WRONLY) # 파일 생성(os.O_CREAT: 필요한 경우 파일을 생성, os.O_WRONLY: 파일을 쓰기 전용 모드로 연다.)
os.rename('a.txt', 'b.txt') # a.txt파일을 b.txt파일로 변경
os.remove('b.txt')
import os
os.mkdir('licat') # licat이란 폴더 생성, 삭제는 os.rmdir()
os.getcwd() # 현재 경로 반환
os.open('a.txt', os.O_CREAT | os.O_WRONLY) # 파일 생성(os.O_CREAT: 필요한 경우 파일을 생성, os.O_WRONLY: 파일을 쓰기 전용 모드로 연다.)
os.rename('a.txt', 'b.txt') # a.txt파일을 b.txt파일로 변경
os.remove('b.txt')
1.2 sys 모듈
Python 인터프리터와 상호작용하는 도구를 제공합니다. 이 모듈을 사용하면 명령행 인수를 처리하거나, 입/출력 스트림을 제어하거나, 인터프리터의 상태를 점검하고 제어할 수 있습니다.
1.3 math 모듈
수학적 연산을 수행하는데 필요한 함수들을 제공합니다. 제곱근, 로그, 삼각함수 등의 기능이 포함되어 있습니다.
1.4 datetime 모듈
날짜와 시간을 다루는 클래스를 제공합니다. 현재 날짜와 시간을 가져오는 것부터 날짜와 시간의 차이를 계산하는 것까지 다양한 기능을 제공합니다.
다만 이 모듈을 통해 Python의 모든 자료형이 완벽히 JSON으로 변환되지는 않습니다. 예를 들어, 파이썬의 dict는 key로 숫자를 사용할 수 있지만, JSON은 key로 숫자를 사용할 수 없습니다.
1.5 json 모듈
JSON 형식의 데이터를 읽고 쓰는 데 사용됩니다. Python 데이터 구조를 JSON 문자열로 직렬화하거나, JSON 문자열을 Python 데이터 구조로 역직렬화하는 기능을 제공합니다. 일반적으로 클래스로 구현하여 만든 인스턴스는 직렬화되지 않습니다.
직렬화란 데이터를 저장/전송 형식으로 변환하는 것을 얘기합니다. 보통 문자열로 변환됩니다.
1.6 collections 모듈
기본 데이터 컨테이너 외에도 다양한 데이터 컨테이너 타입을 제공합니다. deque, Counter, OrderedDict, defaultdict 등과 같은 고급 데이터 구조를 제공합니다.
1.7 itertools 모듈
반복자를 만드는 데 사용되는 함수들을 제공합니다. 이 모듈은 반복자를 만드는 데 사용되는 여러 유용한 함수들을 제공합니다. count
, cycle
, repeat
, chain
, compress
, dropwhile
, takewhile
, groupby
, islice
, starmap
, tee
, zip_longest
등의 함수가 있습니다.
무한히 반복하는 반복자를 만들 수도 있습니다.
1.8 requests 모듈
HTTP 요청을 쉽게 보낼 수 있는 기능을 제공하는 외부 라이브러리입니다. REST API와 통신하거나 웹 페이지를 스크래핑하는 등의 작업을 수행하는 데 유용합니다. 보통 BeautifulSoup
모듈과 함께 사용됩니다. BeautifulSoup
는 가지고 온 데이터를 우리가 보다 쉽게 접근할 수 있게 파싱합니다.
파싱은 문자열이나 데이터를 분석하여 구조화된 정보로 변환하는 과정을 말합니다.
import requests
from bs4 import BeautifulSoup
paullab_url = 'https://paullab.co.kr/bookservice/'
response = requests.get(paullab_url)
response.encoding = 'utf-8'
html = response.text
soup = BeautifulSoup(html, 'html.parser')
bookservices = soup.select('.col-lg-6 > h2') # col-lg-6 클래스 안의 h2 태그 탐색
for no, book in enumerate(bookservices, 1):
print(no, book.text)
import requests
from bs4 import BeautifulSoup
paullab_url = 'https://paullab.co.kr/bookservice/'
response = requests.get(paullab_url)
response.encoding = 'utf-8'
html = response.text
soup = BeautifulSoup(html, 'html.parser')
bookservices = soup.select('.col-lg-6 > h2') # col-lg-6 클래스 안의 h2 태그 탐색
for no, book in enumerate(bookservices, 1):
print(no, book.text)