• 목록
  • 아래로
  • 위로

과도하게 길어진 로그파일을 최근에 추가된 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('로그파일'))


작성자
이니스프리 119 Lv. (0%) 1926400/115200000EXP

Make StudyForUs Great Again!

 

CSVpuymXAAAVVpd.jpg

댓글 0

권한이 없습니다.
번호 제목 글쓴이 날짜 조회 수
공지 [작업 완료] 설 명절 맞이 서버 업데이트 안내 3 마스터 마스터 24.02.11.17:21 819
공지 [중요] 호스팅 만료와 관련하여 일부 수칙이 변경됩니다. 4 마스터 마스터 23.01.14.02:23 4485
367 미사용 K-Cash 반환 1 이니스프리 이니스프리 20.02.27.14:08 127
366 하드웨어 변경 후 Windows 10 다시 정품 인증하기 이니스프리 이니스프리 20.02.26.15:32 176
365 [Ramnode] SSD 용량 추가! 2 image 이니스프리 이니스프리 20.02.17.22:20 136
364 [Python] COS Pro 1급 5-9 풀이 이니스프리 이니스프리 20.02.16.00:34 216
363 [Python] 딕셔너리 자료형에서 .get() 메서드 사용시 에러 회피하기 이니스프리 이니스프리 20.02.15.22:48 141
362 [Python] print() 문의 문자열 출력 형식 2 이니스프리 이니스프리 20.02.15.22:16 140
361 [Python] COS Pro 1급 6-3 풀이 이니스프리 이니스프리 20.02.15.20:14 919
360 [Python] COS Pro 1급 6-2 풀이 이니스프리 이니스프리 20.02.15.20:05 762
359 [Python] 유클리드 호제법 2 image 이니스프리 이니스프리 20.02.15.17:21 148
358 [Python] COS Pro 1급 5-6 풀이 이니스프리 이니스프리 20.02.15.16:55 405
357 [Python] COS Pro 1급 5-4 풀이 이니스프리 이니스프리 20.02.15.16:24 266
356 [Python] COS Pro 1급 5-1 풀이 이니스프리 이니스프리 20.02.15.16:01 611
355 [Python] COS Pro 1급 4-10 풀이 이니스프리 이니스프리 20.02.15.12:17 179
354 [Python] 소수점 자리수의 출력 - round() vs format() 1 이니스프리 이니스프리 20.02.15.11:53 31769
353 [Python] COS Pro 1급 예제 2-6 풀이 이니스프리 이니스프리 20.02.14.15:03 169
352 [Python] 다중 list comprehension 이니스프리 이니스프리 20.02.14.13:08 182
351 [Python] 10진수를 n진수로 변환하기 이니스프리 이니스프리 20.02.14.01:23 612
350 [Python] 스도쿠의 정오를 확인하는 함수 이니스프리 이니스프리 20.02.13.15:28 124
349 [Python] 최소공배수 구하기 이니스프리 이니스프리 20.02.12.00:11 327
348 [Python] 문자열에서 숫자만 뽑아서 정수로 반환하는 함수 이니스프리 이니스프리 20.02.12.00:01 141