Python을 배워보자/7. 파일 입출력

파이썬 파일 입출력 읽기와 쓰기

_Blue_Sky_ 2024. 9. 25. 18:44
728x90

파이썬 파일 입출력: 파일 읽기와 쓰기 상세 가이드

파이썬에서 파일 다루기: 왜 중요할까요?

파이썬은 데이터 분석, 웹 개발, 머신러닝 등 다양한 분야에서 활용되는 강력한 프로그래밍 언어입니다. 이러한 작업을 수행하다 보면 외부 파일에서 데이터를 읽어오거나, 처리 결과를 파일로 저장해야 할 필요가 자주 발생합니다. 파일 입출력은 이러한 데이터 처리 과정에서 필수적인 요소입니다.

파일 입출력의 기본 개념

  • 파일 객체: 파이썬에서 파일은 파일 객체로 표현됩니다. 파일 객체를 통해 파일의 내용을 읽고 쓰는 작업을 수행할 수 있습니다.
  • 파일 모드: 파일을 열 때는 어떤 목적으로 파일을 열 것인지를 지정해야 합니다.
    • r: 읽기 모드 (기본값)
    • w: 쓰기 모드 (파일이 존재하면 내용을 모두 삭제하고 새로 작성)
    • a: 추가 모드 (파일 끝에 내용을 추가)
    • x: 생성 모드 (파일이 존재하지 않을 때만 생성)
    • b: 바이너리 모드 (바이너리 데이터를 읽고 쓰기 위한 모드)
  • 파일 경로: 파일의 위치를 나타내는 문자열입니다. 절대 경로 또는 상대 경로를 사용할 수 있습니다.

파일 열기와 닫기

# 파일 열기
file = open("파일 이름", "모드")

# 파일 닫기
file.close()
 
728x90

파일 읽기

  • read() 메서드: 파일 전체를 문자열로 읽어옵니다.
  • readline() 메서드: 파일에서 한 줄씩 읽어옵니다.
  • readlines() 메서드: 파일 전체를 각 줄을 요소로 하는 리스트로 읽어옵니다.
# 파일 전체 읽기
with open("data.txt", "r") as f:
    contents = f.read()
    print(contents)

# 한 줄씩 읽기
with open("data.txt", "r") as f:
    for line in f:
        print(line, end="")

# 모든 줄을 리스트로 읽기
with open("data.txt", "r") as f:
    lines = f.readlines()
    print(lines)
 

파일 쓰기

# 파일에 문자열 쓰기
with open("output.txt", "w") as f:
    f.write("Hello, world!")

# 파일에 리스트의 요소들을 줄 단위로 쓰기
with open("output.txt", "w") as f:
    data = ["line1", "line2", "line3"]
    f.writelines(data)
 

with 문을 사용한 파일 처리

with 문을 사용하면 파일을 열고 닫는 과정을 간편하게 처리할 수 있습니다. with 블록을 벗어나면 파일이 자동으로 닫히므로, 파일을 닫는 것을 잊어버릴 염려가 없습니다.

다양한 파일 형식 처리

  • CSV 파일: csv 모듈을 사용하여 CSV 파일을 읽고 쓸 수 있습니다.
  • JSON 파일: json 모듈을 사용하여 JSON 파일을 읽고 쓸 수 있습니다.
  • XML 파일: xml.etree.ElementTree 모듈을 사용하여 XML 파일을 파싱할 수 있습니다.

예제: 텍스트 파일에서 특정 단어 찾기

def find_word(filename, word):
    with open(filename, "r") as f:
        for line in f:
            if word in line:
                print(line, end="")

find_word("data.txt", "Python")
 

주의 사항

  • 파일 경로: 파일 경로를 정확하게 지정해야 합니다. 상대 경로를 사용할 때는 현재 작업 디렉토리를 확인해야 합니다.
  • 파일 모드: 파일 모드를 잘못 지정하면 데이터 손실이 발생할 수 있습니다.
  • 인코딩: 파일의 인코딩을 고려해야 합니다. 한글 파일의 경우 encoding="utf-8" 옵션을 사용하는 것이 일반적입니다.
  • 파일 닫기: 파일을 사용한 후에는 반드시 close() 메서드를 호출하여 파일을 닫아야 합니다. 하지만 with 문을 사용하면 자동으로 닫히므로 생략할 수 있습니다.

추가적으로 알아두면 좋은 점

  • 파일 시스템: 파일 시스템의 구조와 동작 방식을 이해하면 파일 입출력을 더 효율적으로 활용할 수 있습니다.
  • 예외 처리: 파일 관련 작업 중에 예외가 발생할 수 있으므로, try-except 블록을 사용하여 예외를 처리해야 합니다.
  • 파일 탐색: os 모듈을 사용하여 파일 시스템을 탐색하고 파일 목록을 얻을 수 있습니다.

결론

파이썬 파일 입출력은 데이터 처리 과정에서 필수적인 요소입니다. 다양한 파일 형식을 읽고 쓰는 방법을 숙달하면 파이썬을 활용한 데이터 분석 및 처리 능력을 향상시킬 수 있습니다.

 

728x90