• 목록
  • 아래로
  • 위로

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

Make StudyForUs Great Again!

 

CSVpuymXAAAVVpd.jpg

댓글 0

권한이 없습니다.
번호 제목 글쓴이 날짜 조회 수
공지 시스템 점검 작업 완료 안내 10 마스터 마스터 24.09.05.16:25 3161
공지 [중요] 호스팅 만료와 관련하여 일부 수칙이 변경됩니다. 4 마스터 마스터 23.01.14.02:23 10599
320 [Flutter] 오프라인 강좌 이니스프리 이니스프리 20.01.09.00:12 360
319 [카고야] 공지 메일이 왔네요~ 이니스프리 이니스프리 20.01.08.13:27 183
318 [오프라인 강좌] 오픈소스 협업을 위한 Git 트레이닝 image 이니스프리 이니스프리 20.01.08.00:13 178
317 [파이썬] OS에 따라서 경로를 달리하기 이니스프리 이니스프리 20.01.07.22:15 575
316 Vivaldi 브라우저 2.10 업데이트 이니스프리 이니스프리 20.01.06.23:54 179
315 [나리야] 마지막 알파버전 금일 업로드 image 이니스프리 이니스프리 20.01.03.12:51 192
314 [Selenium] 다운로드받은 파일명 변경 이니스프리 이니스프리 20.01.03.12:47 2929
313 레노버 랩탑에서 Fn 키 설정 및 Ctrl 키와의 상호전환에 대하여 이니스프리 이니스프리 20.01.02.22:22 1222
312 [펌] 신발 깔창 리뷰 이니스프리 이니스프리 20.01.01.17:26 643
311 [파이썬] 어제 날짜(연월일) 구하기 이니스프리 이니스프리 20.01.01.12:42 1793
310 [파이썬] 엔터를 치지 않아도 키 입력 받기 (윈도우) 이니스프리 이니스프리 20.01.01.12:28 838
309 [파이썬] 여러 개의 공백을 하나로 줄이는 방법 이니스프리 이니스프리 19.12.28.00:12 1397
308 [파이썬] .isalnum() - 정규표현식을 사용하지 않고 문자열 내 특수문자 사용 여부 확인 이니스프리 이니스프리 19.12.27.22:43 4526
307 [Requests] r.text vs r.content 차이 이니스프리 이니스프리 19.12.27.22:40 419
306 [Selenium] alert 창을 닫는 방법 및 alert 창이 뜨는 것을 차단하는 방법 1 이니스프리 이니스프리 19.12.26.23:01 4751
305 이베이에서 저렴하게 올라오는 보안 프로그램에 관하여 이니스프리 이니스프리 19.12.26.12:12 356
304 최근 KT 해외망 간단 리뷰 이니스프리 이니스프리 19.12.25.23:21 261
303 [파이썬] 폴더 및 하위 폴더 내의 파일에서 문자열을 일괄적으로 replace하는 스크립트 이니스프리 이니스프리 19.12.25.13:01 1336
[파이썬] 길어진 로그 파일을 100줄로 줄이는 스크립트 이니스프리 이니스프리 19.12.25.11:49 407
301 [파이썬] .replace() 카운트하는 방법 이니스프리 이니스프리 19.12.24.11:25 730