Python에서 파일 위치 설정하기: seek() 메서드
Python에서 파일 내 읽기·쓰기 위치(파일 포인터)를 이동하려면 seek(offset[, whence]) 메서드를 사용하면 됩니다. 이 메서드는 C 언어 표준 입출력 라이브러리(stdio)의 fseek() 함수와 유사하게 동작하며, 파일 객체의 현재 위치를 지정한 오프셋으로 변경합니다.
whence 인자의 의미
두 번째 인자인 whence는 선택 사항이며, 기본값은 0입니다.
- 0 – 파일 시작점을 기준으로 한 절대 위치로 이동 (기본값)
- 1 – 현재 위치를 기준으로 상대적으로 이동
- 2 – 파일 끝을 기준으로 상대적으로 이동
사용 예제
예를 들어 Hello\nworld라는 텍스트가 들어 있는 my_file이라는 파일이 있고, 첫 번째 문자 'l' 바로 앞으로 포인터를 이동하고 싶다면 다음과 같이 작성할 수 있습니다.
f = open('my_file', 'r')
f.seek(2)
f.close()f.seek(2)를 실행하면 파일 포인터가 파일 시작점에서 두 글자 뒤, 즉 첫 번째 'l' 바로 앞에 위치하게 됩니다.
추가 팁
- 현재 파일 포인터의 위치를 확인하려면
tell()메서드를 함께 사용하세요. - 텍스트 모드(
'r','w'등)에서는whence=1또는whence=2를 사용할 때 오직offset=0만 허용됩니다. 임의의 위치로 자유롭게 이동해야 한다면 바이너리 모드('rb','wb')로 파일을 여는 것이 안전합니다. io.SEEK_SET(0),io.SEEK_CUR(1),io.SEEK_END(2) 상수를 활용하면 코드의 가독성을 높일 수 있습니다.