• 목록
  • 아래로
  • 위로

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

Make StudyForUs Great Again!

 

CSVpuymXAAAVVpd.jpg

댓글 0

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