• 목록
  • 아래로
  • 위로

과도하게 길어진 로그파일을 최근에 추가된 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%) 1973520/115200000EXP

Make StudyForUs Great Again!

 

CSVpuymXAAAVVpd.jpg

댓글 0

권한이 없습니다.
번호 제목 글쓴이 날짜 조회 수
공지 [작업 완료] 설 명절 맞이 서버 업데이트 안내 3 마스터 마스터 24.02.11.17:21 968
공지 [중요] 호스팅 만료와 관련하여 일부 수칙이 변경됩니다. 4 마스터 마스터 23.01.14.02:23 4642
551 [Python] random 함수가 계속하여 동일한 결과를 출력할 때 해결방법 이니스프리 이니스프리 2일 전19:32 56
550 트래픽 절감 관련 모 커뮤니티 사이트의 회의 결과 이니스프리 이니스프리 2일 전16:51 68
549 색상선택 결정문제를 겪고 계신 분들 위한 사이트 OAUTH2 20.06.19.18:22 69
548 database 백업 및 복원을 지원하는 site입니다. 해피보이 20.06.03.20:52 77
547 [펌] Chrome will soon be less of a memory hog in Windows 10 3 이니스프리 이니스프리 20.06.24.00:12 82
546 [Python] Ubuntu에서 파이썬이 설치된 디렉토리를 간단히 확인하는 방법 2 이니스프리 이니스프리 20.08.03.22:58 88
545 [Python] SSL: CERTIFICATE_VERIFY_FAILED에 대한 대처 방법 (2) 이니스프리 이니스프리 24.05.05.21:04 93
544 [Javascript] 값을 이용하여 배열의 요소를 삭제하는 방법 이니스프리 이니스프리 21.04.13.22:10 97
543 순수 React만으로 다이내믹 태그 네이밍하기 Seia Seia 20.01.20.19:18 104
542 React 그리고 Redux 쉽게 이해하기 image Seia Seia 20.09.12.06:31 104
541 [Python] Tabulate 모듈로 작성한 테이블을 파일로 저장할 때 에러가 발생하는 경우 이니스프리 이니스프리 24.04.20.23:45 104
540 [Python] 문자열에서 파일명 또는 폴더명으로 시스템상 지원되는 글자를 제외하고 삭제하기 이니스프리 이니스프리 20.11.01.14:37 105
539 나리야 익명보드 및 내 글 알림 관련 Q&A image 이니스프리 이니스프리 21.02.14.17:30 107
538 [Python] 크롤링한 bytes를 string으로 변환 이니스프리 이니스프리 21.02.14.15:32 109
537 [KT] 오피스넷 가정 설치 관련 이니스프리 이니스프리 24.05.05.00:28 110
536 중국 배대지 휴무 이니스프리 이니스프리 20.01.14.13:01 112
535 [Python] 3개의 list를 하나의 dictionary로 변환하기 이니스프리 이니스프리 20.06.10.21:47 114
534 IPVanish의 한국서버가 4개로 확충되었습니다. image 이니스프리 이니스프리 20.01.11.11:27 116
533 헷갈리는 출생지를 가진 인물들 1 이니스프리 이니스프리 20.06.26.21:09 116
532 MS Office 제품군 명칭 변경 image 이니스프리 이니스프리 20.07.02.18:05 116