Python truncate() 메서드란?
파이썬에서 파일을 원하는 크기로 줄이려면 파일 객체의 truncate([size]) 메서드를 사용하면 됩니다. 이 메서드는 파일의 크기를 잘라내는 역할을 하며, 선택적으로 목표 크기를 지정할 수 있습니다.
truncate()의 기본 동작
size 인자가 전달되면 파일은 해당 크기(최대)까지만 남고, 그 이후의 내용은 삭제됩니다.
반면 size 인자를 생략하고 호출하면 파일은 현재 파일 위치(current position)까지 잘립니다. 이때 현재 파일 위치 자체는 변경되지 않습니다.
주의할 점은, 지정한 크기가 파일의 현재 크기보다 클 경우 그 결과는 운영체제(플랫폼)에 따라 달라진다는 것입니다. 일부 시스템에서는 파일이 지정한 크기만큼 확장되기도 합니다.
truncate() 사용 예제
>>> # test.txt 파일 내용:
>>> # ABCDE
>>> f = open('test.txt', 'r+')
>>> f.truncate(2)
>>> f.read()
'AB'
위 예제에서는 "ABCDE"라는 5글자가 담긴 test.txt 파일을 읽기/쓰기 모드('r+')로 연 뒤, f.truncate(2)를 호출하여 앞의 2바이트("AB")만 남기고 나머지("CDE")를 삭제했습니다.
주의 사항
truncate() 메서드는 읽기 전용 모드('r')로 열린 파일에서는 동작하지 않습니다. 파일을 자르려면 반드시 'r+', 'w', 'a'처럼 쓰기가 가능한 모드로 파일을 열어야 합니다.
또한 파이썬 3.3부터는 파일 객체 대신 경로를 직접 받는 os.truncate(path, length) 함수도 제공되므로, 상황에 따라 이를 활용하는 것도 좋은 방법입니다.