파이썬에서 파일 내의 현재 위치를 이동하려면 seek(offset[, whence]) 메서드를 사용할 수 있습니다. 이 메서드는 C 언어의 stdio 라이브러리에 있는 fseek() 함수와 유사하게 동작하며, 파일 객체의 현재 읽기/쓰기 위치를 지정한 오프셋으로 설정합니다.
whence 인자의 의미
두 번째 인자인 whence는 선택 사항이며, 기본값은 0입니다. 각 값의 의미는 다음과 같습니다.
- 0 — 파일의 시작점을 기준으로 한 절대 위치(기본값)
- 1 — 현재 위치를 기준으로 한 상대적 이동
- 2 — 파일의 끝을 기준으로 한 상대적 이동
사용 예제
예를 들어, 이미 열어둔 파일을 다시 처음 위치부터 읽고 싶다면 아래와 같이 오프셋을 0으로 지정하여 포인터를 파일 시작 지점으로 되돌릴 수 있습니다.
f = open('my_file.txt', 'r')
f.seek(0)
f.close()위 코드는 파일 포인터를 파일의 맨 처음으로 이동시킵니다.
반대로 두 번째 인자에 2를 전달하면 파일의 끝을 기준으로 위치를 이동시킬 수 있습니다. 예를 들어 f.seek(0, 2)를 호출하면 포인터가 파일의 맨 끝으로 이동하여, 기존 내용 뒤에 데이터를 추가하는 작업 등에 활용할 수 있습니다.