22장: 기타 유용한 파이썬 모듈
파이썬은 다양한 작업을 쉽게 처리할 수 있도록 도와주는 풍부한 모듈과 라이브러리를 제공합니다. 이 장에서는 파일 압축, 날짜와 시간 처리, JSON 데이터 처리, 난수 생성, 그리고 웹 스크래핑과 같은 다양한 작업을 수행할 수 있는 유용한 파이썬 모듈을 소개합니다.
#### 22.1 파일 압축
파이썬에서는 `zipfile`과 `tarfile` 모듈을 사용하여 파일 압축과 압축 해제를 수행할 수 있습니다.
##### 22.1.1 `zipfile` 모듈
`zipfile` 모듈을 사용하여 ZIP 파일을 생성하고, 압축을 해제할 수 있습니다.
```python
import zipfile
# 파일 압축
with zipfile.ZipFile('example.zip', 'w') as zipf:
zipf.write('file1.txt')
zipf.write('file2.txt')
# 파일 압축 해제
with zipfile.ZipFile('example.zip', 'r') as zipf:
zipf.extractall('extracted')
```
##### 22.1.2 `tarfile` 모듈
`tarfile` 모듈을 사용하여 TAR 파일을 생성하고, 압축을 해제할 수 있습니다.
```python
import tarfile
# 파일 압축
with tarfile.open('example.tar.gz', 'w:gz') as tar:
tar.add('file1.txt')
tar.add('file2.txt')
# 파일 압축 해제
with tarfile.open('example.tar.gz', 'r:gz') as tar:
tar.extractall('extracted')
```
#### 22.2 날짜와 시간 처리
파이썬에서는 `datetime` 모듈을 사용하여 날짜와 시간을 처리할 수 있습니다.
```python
from datetime import datetime, timedelta
# 현재 날짜와 시간
now = datetime.now()
print(f"현재 날짜와 시간: {now}")
# 날짜와 시간 포맷팅
formatted = now.strftime('%Y-%m-%d %H:%M:%S')
print(f"포맷팅된 날짜와 시간: {formatted}")
# 문자열을 날짜로 변환
date_str = '2023-05-30 14:35:00'
date_obj = datetime.strptime(date_str, '%Y-%m-%d %H:%M:%S')
print(f"변환된 날짜 객체: {date_obj}")
# 날짜 계산
future_date = now + timedelta(days=5)
print(f"5일 후의 날짜: {future_date}")
```
#### 22.3 JSON 데이터 처리
파이썬의 `json` 모듈을 사용하여 JSON 데이터를 쉽게 처리할 수 있습니다.
```python
import json
# JSON 문자열을 파이썬 객체로 변환
json_str = '{"name": "Alice", "age": 30, "city": "New York"}'
data = json.loads(json_str)
print(data)
# 파이썬 객체를 JSON 문자열로 변환
python_obj = {'name': 'Bob', 'age': 25, 'city': 'Los Angeles'}
json_str = json.dumps(python_obj)
print(json_str)
# JSON 파일 읽기
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
# JSON 파일 쓰기
with open('data.json', 'w') as file:
json.dump(python_obj, file)
```
#### 22.4 난수 생성
파이썬의 `random` 모듈을 사용하여 난수를 생성할 수 있습니다.
```python
import random
# 정수 난수 생성
rand_int = random.randint(1, 100)
print(f"정수 난수: {rand_int}")
# 실수 난수 생성
rand_float = random.uniform(1.0, 10.0)
print(f"실수 난수: {rand_float}")
# 리스트에서 임의의 요소 선택
choices = ['apple', 'banana', 'cherry']
rand_choice = random.choice(choices)
print(f"임의의 선택: {rand_choice}")
# 리스트를 임의로 섞기
random.shuffle(choices)
print(f"섞인 리스트: {choices}")
```
#### 22.5 웹 스크래핑
파이썬의 `beautifulsoup4`와 `requests` 모듈을 사용하여 웹 스크래핑을 할 수 있습니다. 먼저 두 모듈을 설치해야 합니다.
```sh
pip install beautifulsoup4 requests
```
##### 22.5.1 웹 스크래핑 예제
다음은 `BeautifulSoup`과 `requests`를 사용하여 웹 페이지에서 데이터를 추출하는 예제입니다.
```python
import requests
from bs4 import BeautifulSoup
# 웹 페이지 요청
url = 'https://example.com'
response = requests.get(url)
# BeautifulSoup 객체 생성
soup = BeautifulSoup(response.text, 'html.parser')
# 제목 태그 추출
title = soup.find('title').text
print(f"제목: {title}")
# 모든 링크 추출
links = soup.find_all('a')
for link in links:
href = link.get('href')
print(href)
```
이상으로, 파이썬의 다양한 유용한 모듈을 사용하는 방법에 대해 알아보았습니다. 다음 장에서는 기타 고급 주제에 대해 더 자세히 알아보겠습니다. 질문이나 요청사항이 있으시면 댓글로 남겨주세요!
---
이 글의 내용은 GoalKicker.com의 Python Notes for Professionals 책을 참조하였습니다.
댓글
댓글 쓰기