PHpullh
학습 라이브러리/Python/파일 I/O & pathlib

PYTHON · 파일/IO

파일 I/O & pathlib

pathlib으로 경로를 객체지향적으로 처리하고 파일을 안전하게 읽고 씁니다.

파일/IO입문pathlibopenwithjsonread_text

핵심 설명

pathlib으로 경로를 객체지향적으로 처리하고 파일을 안전하게 읽고 씁니다.

Python code

from pathlib import Path
import json

# pathlib — 경로 조작
base = Path("/home/user/projects")
file = base / "data" / "config.json"   # / 연산자로 결합

print(file.name)        # config.json
print(file.stem)        # config
print(file.suffix)      # .json
print(file.parent)      # /home/user/projects/data

# 파일 읽기 (with문으로 자동 닫기)
sample = Path("sample.txt")
sample.write_text("Hello\nWorld\nPython", encoding="utf-8")

# 전체 읽기
content = sample.read_text(encoding="utf-8")

# 줄 단위 읽기
with sample.open(encoding="utf-8") as f:
    for line in f:                  # 메모리 효율적
        print(line.rstrip())

# 파일 쓰기
with open("output.txt", "w", encoding="utf-8") as f:
    f.write("첫 번째 줄\n")
    f.writelines(["두\n", "세\n"])

# JSON 처리
data = {"name": "Alice", "scores": [95, 87, 92]}
Path("data.json").write_text(
    json.dumps(data, ensure_ascii=False, indent=2),
    encoding="utf-8"
)
loaded = json.loads(Path("data.json").read_text(encoding="utf-8"))

# 디렉토리 순회
for p in Path(".").glob("*.py"):
    print(p)

for p in Path(".").rglob("*.json"):  # 재귀
    print(p)

학습 팁

pathlib.Path는 OS에 관계없이 경로를 일관되게 처리합니다. os.path.join()보다 훨씬 직관적입니다.

주의할 점

open()으로 파일을 열고 close()를 빠뜨리면 리소스 누수가 발생합니다. 항상 with문을 사용하세요.

자주 묻는 질문

파일 I/O & pathlib란 무엇인가요?

pathlib 으로 경로를 객체지향적으로 처리하고 파일을 안전하게 읽고 씁니다.

파일 I/O & pathlib 학습 시 주의할 점은 무엇인가요?

open() 으로 파일을 열고 close() 를 빠뜨리면 리소스 누수가 발생합니다. 항상 with 문을 사용하세요.