- 0
- 이니스프리
- 조회 수 205
과도하게 길어진 로그파일을 최근에 추가된 100줄로 줄이는 스크립트입니다.
로그가 추가될 때마다 가장 마지막줄에 추가된다는 점에 착안하여 작성했기 때문에, 그러한 원리로 작동하지 않는 파일의 경우에 적용하면 최신 로그가 사라지게 됩니다.
import os BASE_DIR = os.path.dirname(os.path.abspath(__file__)) with open(os.path.join(BASE_DIR, '로그파일'), 'r') as f_read: file_list = f_read.readlines() total = len(file_list) with open(os.path.join(BASE_DIR, '로그파일'), 'w') as f_write: for idx, line in enumerate(file_list, 1): if idx > total - 100: f_write.write(line)
with open r 문 안에 with open w 문을 사용하면 보다 효율적이라는 웹문서가 있어서 그렇게 구현해봤네요 ^^
(알고리즘적으로 정확한 이유는 저도 잘 모르겠습니다.)
참고로 로그파일의 길이(총 라인 수)는 다음과 같은 방법을 통해 얻을 수 있습니다.
num_lines = sum(1 for line in open('로그파일'))
작성자
댓글 0
권한이 없습니다.