• 목록
  • 아래로
  • 위로

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

Make StudyForUs Great Again!

 

CSVpuymXAAAVVpd.jpg

댓글 0

권한이 없습니다.
번호 제목 글쓴이 날짜 조회 수
공지 [작업 완료] 설 명절 맞이 서버 업데이트 안내 3 마스터 마스터 24.02.11.17:21 1044
공지 [중요] 호스팅 만료와 관련하여 일부 수칙이 변경됩니다. 4 마스터 마스터 23.01.14.02:23 4715
94 [Python] 두 개의 리스트를 한꺼번에 for문으로 돌리기 1 이니스프리 이니스프리 20.11.23.20:30 338
93 로지텍 G304 , G403 마우스 카일저소음 스위치(버튼) 교체!! 2 image 자뻑보이 자뻑보이 20.12.02.20:23 1480
92 [React] React-Router BrowserRouter를 사용한 앱을 SFU 호스팅에 배포하는 방법 1 Ruwaku 20.12.18.15:41 313
91 [Python] 전기차 충전소 조회 사이트 크롤링 이니스프리 이니스프리 21.01.10.15:10 231
90 [Python] json.load()와 json.loads()의 차이 2 이니스프리 이니스프리 21.01.24.13:15 496
89 [Windows] 날짜 및 시각을 폴더명으로 하는 백업 Batch 파일 - 파일 버저닝 용도 2 이니스프리 이니스프리 21.01.25.22:14 924
88 [Python] Instalooter 에러 발생 시 대처법 1 이니스프리 이니스프리 21.01.31.13:37 215
87 [Python] BeautifulSoup에서 class명에 공백이 있을 때 검색 방법 이니스프리 이니스프리 21.02.13.00:26 2046
86 [Python] 크롤링한 bytes를 string으로 변환 이니스프리 이니스프리 21.02.14.15:32 109
85 나리야 익명보드 및 내 글 알림 관련 Q&A image 이니스프리 이니스프리 21.02.14.17:30 107
84 ionicons.com - 오픈 소스 아이콘 4 이니스프리 이니스프리 21.02.14.18:59 307
83 외국어(인도-유럽어족) 학습에 관하여 4 이니스프리 이니스프리 21.02.21.00:01 122
82 [Python] 윈도우에서 pyaudio 모듈 설치 에러 해결하는 방법 3 이니스프리 이니스프리 21.03.06.15:11 532
81 [Python] glob.glob() 정렬 방법 정리! 이니스프리 이니스프리 21.03.07.00:49 1510
80 [Python] 동영상 파일의 포맷 변환 - FFmpy 모듈 이니스프리 이니스프리 21.03.07.12:14 245
79 php8.0 대응 라이믹스 오류 해결법 NUBE title: 크롬NUBE 21.03.08.11:39 269
78 [Python] Youtube Data API를 이용하여 특정 채널의 모든 비디오 링크를 얻는 함수 이니스프리 이니스프리 21.03.12.22:05 392
77 [Python] Youtube_dl 사용시 주의할 점 이니스프리 이니스프리 21.03.12.22:14 129
76 [Python] 동영상 파일의 재생시간 길이를 구하기 (OpenCV vs MoviePy) 이니스프리 이니스프리 21.03.12.22:33 4663
75 [Python] 파이썬으로 평균을 구하는 두 가지 방법 이니스프리 이니스프리 21.03.13.21:58 166