본문 바로가기
프로그래밍/Python

[Python] 5. Python의 "파일 입출력"

by iwbap 2024. 6. 17.
728x90

Python 학습: 파일 입출력

파일 입출력은 프로그램이 파일과 상호작용하여 데이터를 읽고 쓰는 중요한 기능입니다. 이번 글에서는 파일 열기와 닫기, 파일 읽기와 쓰기, 그리고 파일 위치 조정에 대해 알아보겠습니다.


1. 파일 열기와 닫기: open, close

Python에서 파일을 열고 닫는 방법은 매우 간단합니다. open 함수를 사용하여 파일을 열고, 작업이 끝난 후 close 함수를 사용하여 파일을 닫습니다.

 

- 파일 열기와 닫기 예제

[python]
 
# 파일 열기
file = open("example.txt", "w")

# 파일에 데이터 쓰기
file.write("Hello, World!")

# 파일 닫기
file.close()
 

open 함수는 파일을 열고 파일 객체를 반환합니다. 첫 번째 인자는 파일 경로, 두 번째 인자는 파일 모드입니다. 주요 파일 모드는 다음과 같습니다:

  • "r": 읽기 모드 (기본값)
  • "w": 쓰기 모드 (파일이 존재하지 않으면 새로 생성, 기존 파일이 있으면 내용 삭제)
  • "a": 추가 모드 (파일 끝에 데이터 추가)
  • "b": 바이너리 모드 (예: "rb", "wb")

파일을 열고 작업이 끝나면 반드시 close 함수를 호출하여 파일을 닫아야 합니다. 이를 통해 파일 리소스를 해제하고 데이터가 제대로 저장되도록 합니다.


2. 파일 읽기와 쓰기: read, write, readline, writelines

파일에서 데이터를 읽고 쓰는 방법은 여러 가지가 있습니다. 주요 메서드는 read, write, readline, writelines입니다.

 

- 파일 쓰기 예제

[python]
 
# 파일 열기 (쓰기 모드)
with open("example.txt", "w") as file:
    file.write("Hello, World!\n")
    file.write("Python 파일 입출력 예제입니다.\n")
 

위의 예제에서 with 문을 사용하여 파일을 열고, 블록이 끝나면 자동으로 파일을 닫습니다. write 메서드는 문자열을 파일에 씁니다.

 

 

- 파일 읽기 예제

[python]
 
# 파일 열기 (읽기 모드)
with open("example.txt", "r") as file:
    content = file.read()
    print(content)
 

read 메서드는 파일의 모든 내용을 문자열로 읽습니다.

 

 

- readline 예제

[python]
 
# 파일 열기 (읽기 모드)
with open("example.txt", "r") as file:
    line = file.readline()
    while line:
        print(line, end="")
        line = file.readline()
 

readline 메서드는 파일에서 한 줄씩 읽습니다.

 

 

- writelines 예제

[python]
 
lines = ["첫 번째 줄입니다.\n", "두 번째 줄입니다.\n", "세 번째 줄입니다.\n"]

# 파일 열기 (쓰기 모드)
with open("example.txt", "w") as file:
    file.writelines(lines)
 

writelines 메서드는 문자열 리스트를 파일에 씁니다.


3. 파일 위치 조정: seek, tell

파일 위치 지시자는 파일 내에서 읽기 또는 쓰기 작업이 수행될 위치를 가리킵니다. 파일 위치 지시자를 조작하여 파일의 특정 위치로 이동할 수 있습니다.

 

- 파일 위치 조정 예제

[python]
 
# 파일 열기 (쓰기 모드)
with open("example.txt", "w") as file:
    file.write("1234567890")

# 파일 열기 (읽기 모드)
with open("example.txt", "r") as file:
    print("현재 파일 위치:", file.tell())  # 파일 위치 지시자 출력 (0)
    content = file.read(5)
    print("읽은 내용:", content)  # '12345' 출력
    print("현재 파일 위치:", file.tell())  # 파일 위치 지시자 출력 (5)

    # 파일 위치 지시자를 파일 시작 위치로 이동
    file.seek(0)
    print("파일 위치 조정 후:", file.tell())  # 파일 위치 지시자 출력 (0)
    content = file.read(5)
    print("다시 읽은 내용:", content)  # '12345' 출력
 

tell 메서드는 현재 파일 위치 지시자를 반환합니다. seek 메서드는 파일 위치 지시자를 설정하여 파일의 특정 위치로 이동시킵니다. seek 메서드는 두 개의 인자를 받습니다:

  • 첫 번째 인자: 파일 내에서 이동할 바이트 수
  • 두 번째 인자 (옵션): 이동 시작 위치 (0: 파일 시작, 1: 현재 위치, 2: 파일 끝)

이 글에서는 Python의 파일 입출력에 대해 알아보았습니다. 파일 열기와 닫기, 파일 읽기와 쓰기, 파일 위치 조정을 이해하고 활용하면 파일과 상호작용하는 프로그램을 작성할 수 있습니다. 다음 단계에서는 예외 처리와 고급 기능을 학습해보세요. Happy Coding!

728x90