- 0
- 이니스프리
- 조회 수 527
과도하게 길어진 로그파일을 최근에 추가된 100줄로 줄이는 스크립트입니다.
로그가 추가될 때마다 가장 마지막줄에 추가된다는 점에 착안하여 작성했기 때문에, 그러한 원리로 작동하지 않는 파일의 경우에 적용하면 최신 로그가 사라지게 됩니다.
1 2 3 4 5 6 7 8 9 10 | 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
권한이 없습니다.