본문 바로가기
카테고리 없음

[파이썬] 파일 입출력 개념, 읽기와 쓰기, with 구문

by 개발자를 꿈꾸는 사람들과 함꼐 2025. 4. 2.

 

파일 입출력의 기본 개념 이해하기

파이썬에서 파일 입출력은 프로그램이 외부 파일(예: 텍스트 파일, 로그 파일 등)에 데이터를 저장하거나, 외부 파일의 데이터를 읽어와서 처리하는 기능입니다. 예를 들어, 사용자가 입력한 내용을 파일에 저장하거나, 저장된 정보를 불러와 프로그램에서 활용할 수 있습니다. 이는 실제 서비스나 프로그램에서 데이터를 지속적으로 관리하기 위해 필수적인 기능입니다.
파이썬에서 파일을 다루기 위해서는 내장 함수인 open()을 사용합니다. 기본 형식은 다음과 같습니다.

f = open("파일이름", "모드")

• 파일이름: 읽거나 저장할 대상 파일의 이름입니다.
• 모드: 파일을 어떻게 열 것인지 지정하는 문자열입니다.

대표적인 파일 모드:
• "r": 읽기 모드 (기본값)
• "w": 쓰기 모드 (파일이 없으면 새로 만들고, 있으면 기존 내용 삭제)
• "a": 추가 모드 (기존 파일 끝에 내용 추가)
• "x": 파일이 없을 때만 새로 생성

파일 작업이 끝나면 반드시 close() 메서드로 파일을 닫아줘야 합니다:

f = open("example.txt", "w")
f.write("Hello, world!")
f.close()

위 예제는 “example.txt” 파일을 쓰기 모드로 열어 텍스트를 기록한 뒤 파일을 닫는 과정입니다.

텍스트 파일 읽기와 쓰기 실습

파일에 내용을 저장하고 읽어오는 기능을 각각 실습해보겠습니다.

1. 파일에 쓰기 (write())

f = open("memo.txt", "w")
f.write("오늘은 파이썬 파일 입출력을 배웠다.")
f.close()

“memo.txt” 파일을 만들고, 문자열을 기록합니다. "w" 모드는 파일이 이미 존재하면 내용을 덮어씁니다.

2. 파일에서 한 줄씩 읽기 (readline())

f = open("memo.txt", "r")
line = f.readline()
print(line)
f.close()

파일에서 첫 번째 줄만 읽어와 출력합니다.

3. 파일 전체 읽기 (read())

f = open("memo.txt", "r")
content = f.read()
print(content)
f.close()

파일의 모든 내용을 문자열 형태로 읽어옵니다.

4. 파일을 한 줄씩 반복해서 읽기 (readlines() 또는 반복문)

f = open("memo.txt", "r")
lines = f.readlines()
for line in lines:
    print(line.strip())
f.close()

파일의 모든 줄을 리스트로 읽어와 한 줄씩 출력합니다. strip()은 줄 끝의 개행 문자를 제거합니다.

with 구문과 실용 예제 응용

파일 입출력에서는 실수로 close()를 빼먹는 경우를 방지하기 위해 with 구문을 사용하는 것이 좋습니다. with를 사용하면 파일을 자동으로 열고 닫아주기 때문에 코드가 더 안전하고 간결해집니다.

with open("log.txt", "a") as f:
    f.write("로그 기록 시작\n")
    f.write("사용자가 로그인했습니다.\n")

이 코드는 “log.txt” 파일에 로그 내용을 추가로 기록하고 자동으로 닫아줍니다. 아래는 사용자 입력을 받아 파일에 저장하고 다시 읽는 예제입니다.

# 사용자로부터 메모 입력 받기
memo = input("메모를 입력하세요: ")

# 파일에 쓰기
with open("user_memo.txt", "w") as f:
    f.write(memo)

# 파일에서 읽기
with open("user_memo.txt", "r") as f:
    saved = f.read()

print("파일에 저장된 내용:", saved)

사용자가 입력한 내용을 파일에 저장하고, 그 파일을 다시 열어 내용을 읽은 뒤 출력하는 프로그램입니다. 아래는 여러 줄을 한 번에 저장하는 예제입니다.

lines = ["첫 번째 줄입니다.\n", "두 번째 줄입니다.\n", "세 번째 줄입니다.\n"]
with open("multiline.txt", "w") as f:
    f.writelines(lines)

리스트에 담긴 여러 줄을 한 번에 파일에 저장할 수 있습니다. 파이썬 파일 입출력은 단순한 로그 저장부터, 데이터 수집, 설정 파일 관리, 간단한 DB 역할까지 넓게 활용됩니다. 초보자라면 다양한 텍스트 파일을 직접 읽고 쓰는 연습을 통해 파일 다루는 데 익숙해지는 것이 중요합니다. 또한 파일 경로를 상대 경로와 절대 경로로 구분하여 다루는 법, 파일 존재 여부 확인, CSV 파일 다루기 등으로 확장해 나갈 수 있습니다. 파일 입출력은 실제 프로젝트에서 자주 사용되는 실용적인 기능이므로 꼭 익혀두길 바랍니다.