파이썬 파일 입출력 이해하기
프로그래밍에서 파일 입출력은 매우 중요한 요소 중 하나입니다. 파이썬 또한 이 기능을 제공하여 텍스트 파일 및 이진 파일을 쉽게 처리할 수 있습니다. 본 포스팅에서는 파이썬의 파일 입출력 기능을 단계별로 살펴보겠습니다.

1. 파일 열기
파일을 사용하기 위해서는 우선 그 파일을 열어야 합니다. 파이썬에서는 open()
함수를 통해 파일을 열 수 있습니다. 이 함수는 두 개의 주요 인자를 받습니다:
- 파일 경로: 상대 경로나 절대 경로를 사용할 수 있습니다.
- 모드: 파일을 열 때의 방식으로, ‘r’ (읽기), ‘w’ (쓰기), ‘a’ (추가) 등의 옵션이 있습니다.
예를 들어, 다음과 같은 코드를 통해 파일을 열 수 있습니다:
file = open("example.txt", "r")
위 코드는 ‘example.txt’ 파일을 읽기 모드로 엽니다. 만약 파일이 존재하지 않으면 오류가 발생합니다.
2. 파일 읽기
파일의 내용을 읽기 위해서는 여러 가지 방법을 사용할 수 있습니다. 각 방법은 다음과 같은 특성을 지니고 있습니다:
- read(): 파일 전체를 문자열로 반환합니다.
- readline(): 파일에서 한 줄씩 읽어 반환합니다.
- readlines(): 파일의 모든 줄을 읽어 리스트로 반환합니다.
예를 들어, read()
메서드를 사용하면 다음과 같이 구현할 수 있습니다:
with open("example.txt", "r") as file:
content = file.read()
이 코드는 전체 내용이 문자열 형태로 content
변수에 저장됩니다.

3. 파일 쓰기
파일에 데이터를 저장할 때는 write()
메서드를 사용합니다. 아래는 파일에 내용을 쓰는 예시입니다:
with open("example.txt", "w") as file:
file.write("Hello, World!")
위 코드는 ‘example.txt’ 파일을 생성하고, 그 안에 “Hello, World!”라는 문자열을 저장합니다. 만약 파일이 이미 존재하면 기존 내용은 삭제되고 새 내용으로 대체됩니다.
4. 파일 추가
파일에 기존 내용을 유지하면서 새로운 데이터를 추가하고 싶다면 a
모드를 사용할 수 있습니다. 아래 코드 예제를 통해 파일에 내용을 추가하는 방법을 살펴보겠습니다:
with open("example.txt", "a") as file:
file.write("\nAppending new line.")
이 코드를 실행하면 파일의 끝에 “Appending new line.”이라는 내용이 추가됩니다.
5. 파일 닫기
파일 작업이 끝난 후에는 반드시 파일을 닫아야 합니다. 파일을 닫지 않으면 데이터 손실이나 메모리 누수가 발생할 수 있습니다. close()
메서드를 사용하여 파일을 닫을 수 있습니다:
file.close()
그러나 with
구문을 사용하면 파일이 자동으로 닫히므로, 매번 close()
를 호출할 필요가 없습니다. 이는 파일 작업의 안전성을 높여 줍니다.
6. 예외 처리
파일 작업 중에는 파일이 존재하지 않거나 접근 권한이 없을 때 오류가 발생할 수 있습니다. 이를 방지하기 위해 try-except
구문을 사용하여 예외를 처리하는 것이 좋습니다:
try:
with open("nonexistent.txt", "r") as file:
content = file.read()
except FileNotFoundError:
print("파일이 존재하지 않습니다.")
7. 파일 포인터 다루기
파일의 특정 부분에 접근해야 할 때, 파일 포인터를 조정하는 것이 필요합니다. seek()
와 tell()
메서드를 사용하여 파일 내의 현재 위치를 제어할 수 있습니다. seek(offset, whence)
를 사용하여 포인터를 이동시키고, tell()
로 현재 위치를 확인할 수 있습니다.
with open("example.txt", "r") as file:
file.seek(0) # 파일의 맨 처음으로 이동
print(file.tell()) # 현재 위치 출력

결론
파이썬의 파일 입출력 기능은 매우 강력하며, 데이터를 저장하고 불러오는 데 유용합니다. 이 가이드를 통해 파일을 다루는 기본적인 방법을 익혔다면, 복잡한 데이터 처리를 수행할 때 도움이 될 것입니다. 파일의 특성과 다양한 모드를 이해하고 활용하여 효율적인 프로그래밍을 하시기 바랍니다.
자주 묻는 질문 FAQ
파이썬에서 파일을 여는 방법은 무엇인가요?
파일을 사용하려면 먼저 열어야 하며, 파이썬에서는 open()
함수를 활용해 파일을 개방할 수 있습니다. 이때 파일 경로와 모드를 지정해야 합니다.
파일에서 데이터를 읽는 방법은 어떤 것들이 있나요?
파일에서 내용을 추출하는 방법은 여러 가지가 있습니다. 전체 내용을 가져오는 read()
메서드, 한 줄씩 읽는 readline()
, 그리고 모든 줄을 리스트로 얻는 readlines()
가 있습니다.
파일에 데이터를 추가하려면 어떻게 해야 하나요?
기존 파일 내용에 새로운 정보를 추가하고 싶다면 a
모드로 파일을 열어 write()
메서드를 사용하면 됩니다. 이를 통해 기존 내용 뒤에 추가할 수 있습니다.