• 목록
  • 아래로
  • 위로

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

Make StudyForUs Great Again!

 

CSVpuymXAAAVVpd.jpg

댓글 0

권한이 없습니다.
번호 제목 글쓴이 날짜 조회 수
공지 [작업 완료] 설 명절 맞이 서버 업데이트 안내 3 마스터 마스터 24.02.11.17:21 1010
공지 [중요] 호스팅 만료와 관련하여 일부 수칙이 변경됩니다. 4 마스터 마스터 23.01.14.02:23 4685
332 [할인정보] 이니스프리 2/15-2/18 올해 첫 빅 세일! (최대 50% 할인) 2 이니스프리 이니스프리 17.02.15.19:51 270
331 [Python] 두 개의 변수를 하나의 for문에서 돌리기 - zip() 활용 이니스프리 이니스프리 20.06.16.14:53 272
330 [Python] \u3000을 공백으로 치환하기 이니스프리 이니스프리 23.10.29.14:51 273
329 [특가] 오늘 하루, TRON G41마우스 19,800원 특가 1 image 하루살이 title: 황금 서버 (30일)하루살이 17.02.27.13:00 275
328 컴퓨터로 가운뎃점을 쉽게 입력해보자 6 image 슬기 슬기 19.04.19.14:18 276
327 [Python Requests] multiple cookies를 다루기 - "There are multiple cookies with name python" 에러 처리 이니스프리 이니스프리 23.08.22.01:40 279
326 (펌) 앱코, 감성초월 레트로 키보드 K850 & K830 마지막 하루!! 1 image 하루살이 title: 황금 서버 (30일)하루살이 17.02.28.00:41 282
325 [할인정보] 트렌드마이크로 맥시멈 시큐리티 80% 할인! image 이니스프리 이니스프리 17.01.31.18:38 282
324 [할인정보] 더페이스샵 1월 멤버십데이 (오늘부터!) 1 image 이니스프리 이니스프리 17.01.02.10:19 283
323 [할인정보] Bullguard 백신 - 발렌타인데이 70% 할인 이벤트! 3 image 이니스프리 이니스프리 17.02.09.22:42 284
322 [Python] clint를 이용한 requests에서의 다운로드 프로그레스바 이니스프리 이니스프리 20.05.29.14:53 289
321 JavaScript와 Canvas로 이미지의 배경값을 자동으로 산출하기 Seia Seia 20.09.12.06:37 290
320 멘션 설정을 해주세요. 1 image 에듀 title: 맛스타의 자물쇠에듀 16.12.01.20:47 291
319 [Python] URL에서 파일을 다운받지 않고 파일용량를 알아내는 방법 3 이니스프리 이니스프리 20.05.13.21:01 291
318 하루에 포인트를 많이 쌓는 법 3 image title: 은메달도다 17.01.12.16:02 293
317 [건강/의학] 냄새 없애고 세균 죽이는 양치법. 1 image death death 17.01.25.21:18 296
316 [할인정보] Emsisoft 안티멀웨어 할인! 이니스프리 이니스프리 17.02.23.23:13 299
315 [Requests] r.text vs r.content 차이 이니스프리 이니스프리 19.12.27.22:40 299
314 기억력 증진을 위한 생활습관 12가지 image 오후두시스토리 오후두시스토.. 17.04.06.11:12 299
313 [정규식] 문자열에 괄호 넣기 이니스프리 이니스프리 20.07.01.18:37 301