파이썬

Python 기초강의: #10 표준 라이브러리: 파이썬 프로그래머를 위한 필수 도구

TitediosKW 2024. 7. 1. 19:00
반응형

파이썬은 그 자체로 강력한 프로그래밍 언어이지만, 이를 더욱 강력하게 만들어주는 것은 바로 방대한 표준 라이브러리입니다. 파이썬에는 이미 다양한 기능을 수행할 수 있도록 미리 준비된 모듈들이 모여있는 표준 라이브러리가 존재합니다. 마치 기술자가 다양한 도구를 보관하는 도구 상자와 같습니다. 표준 라이브러리는 파일 입출력, 네트워킹, 날짜 및 시간 처리, 문자열 조작, 수학 계산 등 다양한 작업을 수행하는 데 필요한 모듈들을 제공합니다. 이 모듈들을 활용하면 코드를 더욱 간결하고 효율적으로 작성할 수 있으며, 개발 시간을 단축할 수 있습니다. 이번 포스팅에서는 파이썬 표준 라이브러리의 주요 구성 요소와 그 활용 방법을 소개하겠습니다.

표준 라이브러리의 장점 및 활용법

표준 라이브러리의 장점

기본적인 기능 제공: 표준 라이브러리는 프로그래밍에서 흔히 사용하는 기능들을 모아놓고 있어 별도로 설치할 필요가 없습니다.
코드 간결성 향상: 표준 라이브러리 함수를 활용하면 코드를 더욱 간결하고 읽기 쉽게 작성할 수 있습니다.
개발 효율성 증대: 이미 준비된 모듈을 사용하기 때문에 반복적인 작업을 줄이고 개발 시간을 단축할 수 있습니다.
다양한 기능 확장: 표준 라이브러리는 지속적으로 업데이트되고 있으며, 다양한 기능을 추가하는 모듈들을 쉽게 찾아 사용할 수 있습니다.

표준 라이브러리 활용법

표준 라이브러리는 다음과 같은 방법으로 활용할 수 있습니다.

필요한 모듈 import: 사용하려는 기능을 제공하는 모듈을 import합니다. 예를 들어, 파일 입출력 기능을 사용하려면 os 모듈을 import합니다.
모듈 함수 사용: import한 모듈에서 제공하는 함수를 사용하여 원하는 작업을 수행합니다. 예를 들어, os.path.join() 함수를 사용하여 두 개의 경로를 합칠 수 있습니다.
온라인 문서 참고: 표준 라이브러리 모듈 및 함수에 대한 자세한 정보는 공식 온라인 문서를 참고하세요. (https://docs.python.org/)

1. 파일과 디렉토리 관리: os와 shutil

os 모듈은 운영 체제와 상호작용할 수 있는 기능을 제공합니다. 파일과 디렉토리의 생성, 삭제, 경로 조작 등을 수행할 수 있습니다. 실제 os 라이브러리는 많은 작업을 수행할 때 꽤 유용한 기능들을 제공합니다. 제시된 예시 외에 다른 기능들은 공식문서를 참조하시면 좋겠습니다.

import os

# 현재 작업 디렉토리 확인
print(os.getcwd())

# 새로운 디렉토리 생성
# exist_ok=True 디렉토리가 있더라도 무시하고 수행, False 면 에러 발생
os.mkdir('new_directory', exist_ok=True) 

# 디렉토리 이름 변경
os.rename('new_directory', 'renamed_directory')

# 디렉토리 삭제
os.rmdir('renamed_directory')

# 디렉토리 경로 생성
# 디렉토리와 파일이름을 받아 하나의 경로로 반환
directory_name = os.path.join('directory', 'filename') 

# 디렉토리 내 파일 검색
file_list = os.listdir('directory')

 

shutil 모듈은 파일 및 디렉토리 복사와 같은 고수준 파일 작업을 지원합니다. 파일 작업을 할 때 유용합니다. move나 rm 기능을 사용시 주의하시기 바랍니다!! 해당 명령어를 통해 수행하게 되면 파일의 복구가 불가능할 수 있기 때문입니다(백업의 생활화!! 개발에 실패한 개발자는 용서해도 백업에 실패한 개발자는 용서할 수 없다는 말도 있습니다).

import shutil

# 파일 복사
shutil.copy('source_file.txt', 'destination_file.txt')

# 디렉토리 복사
shutil.copytree('source_directory', 'destination_directory')

# 디렉토리 삭제
shutil.rmtree('destination_directory')

2. 데이터 직렬화: json과 pickle

데이터를 저장하거나 네트워크를 통해 전송하려면 데이터를 직렬화해야 합니다. 파이썬은 이를 위해 json과 pickle 모듈을 제공합니다. dict데이터 형식과 json 형식은 유사한 점이 많고 거의 바로 전환이 되기 때문에 자주 사용됩니다. json을 파일로 만들어 저장하기도 합니다.

import json

data = {'name': 'Alice', 'age': 25}

# JSON 직렬화
json_string = json.dumps(data)
print(json_string)

# JSON 역직렬화
data = json.loads(json_string)
print(data)

 

pickle 모듈은 파이썬 객체를 바이너리 형식으로 직렬화할 수 있습니다. 바이너리 형식으로 빠른 입출력이 가능합니다.

import pickle

# 객체 직렬화
with open('data.pkl', 'wb') as f:
    pickle.dump(data, f)

# 객체 역직렬화
with open('data.pkl', 'rb') as f:
    data = pickle.load(f)
print(data)

3. 날짜와 시간 처리: datetime

datetime 모듈은 날짜와 시간을 조작할 수 있는 다양한 클래스를 제공합니다. 이 클래스를 이용하여 로그 기록 시간이라던지 작업 시작/종료 시간 등을 확인할 수 있습니다.

from datetime import datetime, timedelta

# 현재 날짜와 시간
now = datetime.now()
print(now) # 현재 시간 출력

# 특정 날짜와 시간 생성
new_year = datetime(2024, 1, 1)
print(new_year)

# 날짜 연산
tomorrow = now + timedelta(days=1)
print(tomorrow)

# 작업시간 계산
now = datetime.now()
# to do something
elapsed_time = datetime.now() - now # 작업시간 = 종료 시간 - 시작 시간
print(elapsed_time)

4. 정규 표현식: re

정규 표현식을 사용하면 문자열 검색과 조작을 효율적으로 수행할 수 있습니다. 파이썬의 re 모듈은 정규 표현식을 지원합니다.

import re

# 패턴 매칭
pattern = r'\d+' # r'' 정규 표현식이라는 의미
text = 'My phone number is 123-456-7890.'
matches = re.findall(pattern, text)
print(matches)

# 패턴 치환
new_text = re.sub(pattern, '###', text)
print(new_text)

 

정규표현식에 대해 추가적으로 설명하도록 하겠습니다. 지금은 깊은 이해보다 간략한 이해 또는 인식 정도만 해도 충분합니다.

정규표현식

정규 표현식(Regular Expression, 약자: regex)은 문자열 패턴을 검색하고 조작하는 데 사용하는 형식 언어입니다. 텍스트 편집기, 프로그래밍 언어, 검색 엔진 등 다양한 곳에서 사용됩니다.

 

예) ^\d{3}-\d{3}-\d{4}$: 이 정규 표현식은 숫자 3개-숫자 3개-숫자 4개 형식의 문자열을 검색

결론

파이썬 표준 라이브러리는 이 외에도 수많은 모듈과 패키지를 포함하고 있습니다. 이러한 라이브러리를 적절히 활용하면 더욱 효율적이고 강력한 파이썬 프로그램을 작성할 수 있습니다. 표준 라이브러리에 대한 깊이 있는 이해와 활용은 파이썬 프로그래머로서의 역량을 크게 향상시킬 것입니다.

 

다음 포스팅에서는 외부 라이브러리의 활용 방법을 소개하겠습니다. 편안하고 행복한 코딩 되세요!

 

감사합니다.

반응형