Python 파일 I/O: 안전하게 파일 읽기 및 쓰기
Python에서 파일을 읽고 쓰는 방법을 알아보세요. 리소스 누수 없이 파일 작업을 안전하게 처리할 수 있는 open(), read(), write() 및 컨텍스트 관리자를 마스터하세요.
개요
파일 입출력(I/O)은 Python 프로그램이 컴퓨터의 영구 저장소와 상호 작용할 수 있게 해주는 기본 기능입니다. 간단한 로거를 작성하든, 구성 파일을 읽든, 대규모 데이터 배열을 처리하든 관계없이 프로그램에는 디스크에서 파일을 열고, 읽고, 쓰고, 닫는 안정적인 방법이 필요합니다. Python은 파일 시스템 상호 작용을 간단하고 플랫폼 간 상호 작용을 가능하게 하는 깔끔한 내장 기능을 제공합니다.
Python에서 파일 액세스를 위한 기본 도구는 내장된 `open()` 함수입니다. 이 함수는 파일 경로와 모드 문자열을 허용합니다. 모드는 파일에 액세스하는 방법을 결정합니다: 읽기용 `'r'`, 쓰기(파일 덮어쓰기)용 `'w'`, 끝에 내용 추가용 `'a'`, 바이너리 모드(이미지 또는 직렬화된 데이터에 유용함)용 `'b'`. 결정적으로 파일을 열 때마다 운영 체제 핸들이 사용됩니다. 파일을 닫지 못하면 메모리 누수 또는 파일 잠금 문제가 발생할 수 있습니다.
파일이 항상 올바르게 닫히도록 보장하기 위해 Python 개발자는 컨텍스트 관리자를 구현하는 `with` 문을 사용합니다. `with open(...) as file:`을 사용하면 내부에서 예상치 못한 예외가 발생하더라도 Python은 코드 블록이 종료되면 자동으로 파일 핸들을 닫습니다. 데이터 읽기는 `for line in file:`을 사용하여 한 줄씩 수행하거나 `.read()`, `.readline()` 또는 `.readlines()`를 통해 한 번에 수행할 수 있습니다. 텍스트 쓰기는 `.write()` 또는 `.writelines()`를 통해 처리되므로 원활하고 안전하며 효율적인 파일 작업이 가능합니다.
코드 및 실행 출력
임시 텍스트 파일에 인사말을 쓰고 안전한 컨텍스트 관리자를 사용하여 한 줄씩 다시 읽습니다.
filename = "sample.txt"
# Writing to a file
with open(filename, "w") as file:
file.write("Hello, Python coder!\n")
file.write("This is a line in a file.\n")
file.write("File I/O is simple.\n")
print("File written successfully.\n--- Reading File ---")
# Reading from a file line by line
with open(filename, "r") as file:
for index, line in enumerate(file, 1):
print(f"Line {index}: {line.strip()}")File written successfully.
--- Reading File ---
Line 1: Hello, Python coder!
Line 2: This is a line in a file.
Line 3: File I/O is simple.단계별 구현
- 오류 및 프로그램 출력 로깅
- 구성 파일 읽기(예: .env 또는 config.txt)
- 사용자 보고서 저장 또는 내보낸 분석 요약
자주 묻는 질문
쓰기 모드와 추가 모드의 차이점은 무엇입니까?
쓰기 모드('w')는 파일을 0 길이로 자르고 쓰기 전에 기존 내용을 모두 삭제합니다. 추가 모드('a')는 커서를 끝에 배치하여 기존 내용을 삭제하지 않고 새 텍스트를 추가합니다.
왜 with 문을 사용해야 합니까?
with 문은 컨텍스트 관리자 역할을 하여 파일이 자동으로 닫히도록 하여 메모리 누수 및 잠금 파일 오류를 방지합니다.
관련 주제
Python에서 사용자 정의 컨텍스트 관리자를 작성하는 방법을 알아보세요. 리소스 안전을 위해 contextmanager 데코레이터와 __enter__/__exit__ 메서드를 마스터하세요.
Python JSON 구문 분석Python에서 JSON 데이터를 읽고, 쓰고, 구문 분석하는 방법을 알아보세요. json.loads, json.dumps 및 JSON 인코더/디코더 사용자 정의를 마스터하세요.
Python CSVPython에서 CSV 데이터를 처리하는 방법을 알아보세요. 효율적인 테이블 구문 분석을 위한 마스터 csv.reader, csv.writer 및 DictReader/DictWriter.
권장 Python 리소스
관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.
Python에서 파일을 읽는 방법(텍스트 및 JSON)
Python에서 파일을 읽는 방법을 알아보세요. open 문, readline, readline을 마스터하고 파일 예외를 안전하게 처리하세요.
Python 사전 메소드 치트 시트
Python 사전 방법을 알아보세요. 키-값 쌍 삽입, 검색, 업데이트 및 확인에 대한 완전한 참조 가이드입니다.
Python 대 JavaScript: 어떤 프로그래밍 언어가 가장 좋나요?
Python과 JavaScript를 포괄적으로 비교합니다. 구문 차이점, 성능, 사용 사례(백엔드와 프런트엔드) 및 코딩 예제를 살펴보세요.