AI와 친해지기/AI를 직접해볼까?

[Python 기초] AI 개발자를 위한 파일 입출력(File I/O) 활용하기

insight발자국 2025. 2. 13. 09:15

📂 [Python 기초] AI 개발자를 위한 파일 입출력(File I/O) 활용하기

 

파일 입출력(File I/O)은 데이터를 저장하고 불러오는 데 필수적인 기능입니다.
프로그램을 실행할 때마다 데이터를 새로 입력해야 한다면 비효율적이겠죠?
파일을 활용하면 
데이터를 저장하고 재사용할 수 있습니다.

이번 글에서는 파이썬에서 파일을 읽고, 쓰고, 수정하는 방법을 살펴보겠습니다 😊

💡 학습할 내용:

  • 파일 열기와 닫기 (open(), close())
  • 파일에 데이터 쓰기 (write(), writelines())
  • 파일 읽기 (read(), readline(), readlines())
  • 파일 모드 (w, r, a, x 등)
  • 실전 예제 및 오류 처리 (try-except 활용)

📝 1. 파일 열기와 닫기

파일을 사용하려면 먼저 파일을 열고(open()), 사용 후 닫아야(close()) 합니다.

file = open("example.txt", "w")  # 쓰기 모드로 파일 열기
file.write("Hello, Python File I/O!")  # 파일에 내용 쓰기
file.close()  # 파일 닫기

📌 파일을 닫아야 하는 이유

  • 파일이 정상적으로 저장되지 않을 수 있음
  • 시스템 리소스 낭비 방지
  • 여러 개의 프로그램이 같은 파일을 사용할 때 오류 방지

 with문 사용하면 자동으로 파일이 닫혀요!

with open("example.txt", "w") as file:
    file.write("Hello, Python!")

✍️ 2. 파일에 데이터 쓰기

파일에 데이터를 저장할 때는 write() 또는 writelines()를 사용합니다.

🔹 write() – 문자열 한 개 쓰기

with open("example.txt", "w") as file:
    file.write("첫 번째 줄\n")
    file.write("두 번째 줄\n")

📌 출력 결과 (example.txt 내용):

첫 번째 줄
두 번째 줄

🔹 writelines() – 리스트를 파일에 쓰기

lines = ["Python은 재미있어요!\n", "파일 입출력도 쉬워요!\n"]
with open("example.txt", "w") as file:
    file.writelines(lines)

📖 3. 파일 읽기 (read, readline, readlines)

파일의 내용을 읽는 방법은 여러 가지가 있습니다.

🔹 read() – 파일 전체 읽기

with open("example.txt", "r") as file:
    content = file.read()
    print(content)

📌 출력 결과:

Python은 재미있어요!
파일 입출력도 쉬워요!

🔹 readline() – 한 줄씩 읽기

with open("example.txt", "r") as file:
    line1 = file.readline()
    line2 = file.readline()
    print(line1, end="")
    print(line2, end="")

📌 출력 결과:

Python은 재미있어요!
파일 입출력도 쉬워요!

🔹 readlines() – 모든 줄을 리스트로 읽기

with open("example.txt", "r") as file:
    lines = file.readlines()
    print(lines)

📌 출력 결과:

['Python은 재미있어요!\n', '파일 입출력도 쉬워요!\n']

🔄 4. 파일 모드 (w, r, a, x)

파이썬의 open() 함수는 여러 가지 모드를 지원합니다.

모드 설명
r 읽기 모드 (파일이 존재해야 함)
w 쓰기 모드 (기존 내용 삭제됨)
a 추가 모드 (기존 내용 유지, 새로운 내용 추가)
x 파일이 없을 때만 새 파일 생성
# 추가 모드 ('a') 사용 예제
with open("example.txt", "a") as file:
    file.write("세 번째 줄 추가!\n")

📌 출력 결과 (example.txt):

Python은 재미있어요!
파일 입출력도 쉬워요!
세 번째 줄 추가!

⚠️ 5. 파일 예외 처리 (try-except 활용)

파일이 존재하지 않거나 권한이 없을 경우 오류가 발생할 수 있습니다. try-except를 사용하면 안전하게 파일을 다룰 수 있습니다.

try:
    with open("없는파일.txt", "r") as file:
        content = file.read()
        print(content)
except FileNotFoundError:
    print("파일을 찾을 수 없습니다!")

📌 출력 결과:

파일을 찾을 수 없습니다!

🎯 6. 실전 연습 문제

✏️ 문제 1: 간단한 메모장 만들기

사용자가 입력한 내용을 파일에 저장하고, 다시 불러오는 프로그램을 만들어보세요.

filename = "memo.txt"
mode = input("쓰기(w) / 읽기(r) 모드 선택: ")

if mode == "w":
    text = input("저장할 내용을 입력하세요: ")
    with open(filename, "w") as file:
        file.write(text + "\n")
elif mode == "r":
    with open(filename, "r") as file:
        print("저장된 내용:")
        print(file.read())
else:
    print("올바른 모드를 선택하세요!")

✏️ 문제 2: 파일에서 특정 단어 개수 세기

파일을 읽고 특정 단어가 몇 번 등장하는지 세는 프로그램을 작성해보세요.

word_to_find = input("찾을 단어: ")
count = 0
with open("example.txt", "r") as file:
    for line in file:
        count += line.count(word_to_find)
print(f"'{word_to_find}' 단어는 {count}번 등장합니다.")

📢 7. 마무리 및 다음 학습

이 글에서는 파일 입출력(File I/O) 개념을 배우고, 다양한 활용법을 살펴봤습니다.
실전 연습 문제를 직접 풀어보면서 파일 입출력에 대해 익혀보는 시간을 가져보면 좋겠습니다. 😊

✅ 다음 학습 주제

🔹 파이썬에서 JSON 파일 다루기 – 데이터를 저장하고 불러오는 더욱 효율적인 방법! 

📌 파이썬 기초부터 차근차근 배우고 싶다면? 다음 글도 기대해주세요! 🚀