• 목록
  • 아래로
  • 위로

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

Make StudyForUs Great Again!

 

CSVpuymXAAAVVpd.jpg

댓글 0

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