Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 파일 위치 제어하기: tell()과 seek() 메서드 완벽 정리

Python에서 파일을 다룰 때 현재 읽기·쓰기 위치를 확인하거나 원하는 위치로 이동해야 하는 경우가 자주 있습니다. 이때 사용하는 것이 바로 tell() 메서드와 seek() 메서드입니다.

tell() 메서드 – 현재 파일 위치 확인

tell() 메서드는 파일 내에서 현재 위치(파일 포인터의 위치)를 알려줍니다. 즉, 다음에 수행될 읽기 또는 쓰기 작업이 파일 시작점으로부터 몇 바이트 떨어진 곳에서 일어나는지를 반환합니다.

seek(offset[, from]) 메서드 – 파일 위치 변경

seek(offset[, from]) 메서드는 현재 파일 위치를 변경합니다.

  • offset: 이동할 바이트 수를 나타냅니다.
  • from: 기준이 되는 참조 위치를 지정합니다.

from 인수에 설정할 수 있는 값은 다음과 같습니다.

  • 0: 파일의 시작 부분을 기준 위치로 사용합니다.
  • 1: 현재 위치를 기준 위치로 사용합니다.
  • 2: 파일의 끝 부분을 기준 위치로 사용합니다.

예제 코드

앞서 생성한 foo.txt 파일을 예제로 살펴보겠습니다.

#!/usr/bin/python3
# 파일 열기
fo = open("foo.txt", "r+")
str = fo.read(10)
print("읽은 문자열 : ", str)

# 현재 위치 확인
position = fo.tell()
print("현재 파일 위치 : ", position)

# 포인터를 다시 파일 처음으로 이동
position = fo.seek(0, 0)
str = fo.read(10)
print("다시 읽은 문자열 : ", str)

# 열었던 파일 닫기
fo.close()

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

읽은 문자열 : Python is
현재 파일 위치 : 10
다시 읽은 문자열 : Python is

정리

tell()로 현재 파일 포인터의 위치를 확인하고, seek()로 원하는 위치로 자유롭게 이동시킬 수 있습니다. 두 메서드를 함께 활용하면 대용량 파일에서 특정 지점만 반복해서 읽거나, 파일 끝부분부터 데이터를 처리하는 등 유연한 파일 입출력 작업이 가능합니다.