• 목록
  • 아래로
  • 위로

과도하게 길어진 로그파일을 최근에 추가된 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 2611
공지 [중요] 호스팅 만료와 관련하여 일부 수칙이 변경됩니다. 4 마스터 마스터 23.01.14.02:23 10064
260 [파이썬] .replace() 카운트하는 방법 이니스프리 이니스프리 19.12.24.11:25 708
[파이썬] 길어진 로그 파일을 100줄로 줄이는 스크립트 이니스프리 이니스프리 19.12.25.11:49 220
258 [파이썬] 폴더 및 하위 폴더 내의 파일에서 문자열을 일괄적으로 replace하는 스크립트 이니스프리 이니스프리 19.12.25.13:01 1318
257 최근 KT 해외망 간단 리뷰 이니스프리 이니스프리 19.12.25.23:21 213
256 이베이에서 저렴하게 올라오는 보안 프로그램에 관하여 이니스프리 이니스프리 19.12.26.12:12 320
255 [Selenium] alert 창을 닫는 방법 및 alert 창이 뜨는 것을 차단하는 방법 1 이니스프리 이니스프리 19.12.26.23:01 4708
254 [Requests] r.text vs r.content 차이 이니스프리 이니스프리 19.12.27.22:40 379
253 [파이썬] .isalnum() - 정규표현식을 사용하지 않고 문자열 내 특수문자 사용 여부 확인 이니스프리 이니스프리 19.12.27.22:43 4514
252 [파이썬] 여러 개의 공백을 하나로 줄이는 방법 이니스프리 이니스프리 19.12.28.00:12 1356
251 [파이썬] 엔터를 치지 않아도 키 입력 받기 (윈도우) 이니스프리 이니스프리 20.01.01.12:28 797
250 [파이썬] 어제 날짜(연월일) 구하기 이니스프리 이니스프리 20.01.01.12:42 1757
249 [펌] 신발 깔창 리뷰 이니스프리 이니스프리 20.01.01.17:26 541
248 레노버 랩탑에서 Fn 키 설정 및 Ctrl 키와의 상호전환에 대하여 이니스프리 이니스프리 20.01.02.22:22 1206
247 [Selenium] 다운로드받은 파일명 변경 이니스프리 이니스프리 20.01.03.12:47 2885
246 [나리야] 마지막 알파버전 금일 업로드 image 이니스프리 이니스프리 20.01.03.12:51 172
245 Vivaldi 브라우저 2.10 업데이트 이니스프리 이니스프리 20.01.06.23:54 162
244 [파이썬] OS에 따라서 경로를 달리하기 이니스프리 이니스프리 20.01.07.22:15 387
243 [오프라인 강좌] 오픈소스 협업을 위한 Git 트레이닝 image 이니스프리 이니스프리 20.01.08.00:13 168
242 [카고야] 공지 메일이 왔네요~ 이니스프리 이니스프리 20.01.08.13:27 164
241 [Flutter] 오프라인 강좌 이니스프리 이니스프리 20.01.09.00:12 303