• 목록
  • 아래로
  • 위로

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

Make StudyForUs Great Again!

 

CSVpuymXAAAVVpd.jpg

댓글 0

권한이 없습니다.
번호 제목 글쓴이 날짜 조회 수
공지 [작업 완료] 설 명절 맞이 서버 업데이트 안내 3 마스터 마스터 24.02.11.17:21 2204
공지 [중요] 호스팅 만료와 관련하여 일부 수칙이 변경됩니다. 4 마스터 마스터 23.01.14.02:23 5884
96 최근 KT 해외망 간단 리뷰 이니스프리 이니스프리 19.12.25.23:21 174
95 [Python] extension이 標示되지 않는 online image의 extension을 알아내기 이니스프리 이니스프리 22.04.01.20:51 174
94 [Python] COS Pro 1급 예제 2-6 풀이 이니스프리 이니스프리 20.02.14.15:03 174
93 Eva Icons - 웹, iOS, 안드로이드를 위한 오픈소스 아이콘 2 이니스프리 이니스프리 18.12.08.14:38 174
92 [Docker] Docker 다시 알고 사용하기 Seia Seia 21.04.10.07:04 173
91 앱체크 라이선스 갱신과 관련하여 이니스프리 이니스프리 19.05.11.14:43 173
90 [Python] 파이썬으로 평균을 구하는 두 가지 방법 이니스프리 이니스프리 21.03.13.21:58 171
89 [Python] Function to save list into a text file line by line 이니스프리 이니스프리 22.06.11.21:33 171
88 [Python] 독일어, 스페인어, 체코어 등 철자를 영문 알파벳으로 전환하기 이니스프리 이니스프리 24.04.21.17:15 170
87 [스퀘어넷] Ubuntu Server 18.04 LTS 지원 1 이니스프리 이니스프리 19.02.04.22:20 170
86 [Python] OrderedDict에 대한 간단한 소개 3 이니스프리 이니스프리 20.06.16.13:09 169
85 AMD KOREA 라이젠 3500X 공식 런칭 예정 image 이니스프리 이니스프리 19.10.15.17:50 169
84 [Python] 변수의 이름을 반환하는 함수 이니스프리 이니스프리 24.04.20.23:29 168
83 [펌] 하이패스 미납요금 내기 귀찮을 땐, 동네 편의점? image 이니스프리 이니스프리 19.08.28.14:53 167
82 마지막 방문일자 알려주기 슬기 슬기 18.10.11.00:31 166
81 [팁] 모바일 앱 빌더 해피보이 20.04.02.08:59 165
80 JLPT 성적표 및 합격증 수령 주소 변경 이니스프리 이니스프리 20.01.29.21:51 165
79 [Python] 구버전 KeyCaptcha 정답 좌표 찾기 image 네모 네모 21.07.09.02:46 163
78 [펌] 하나의 키 입력으로 유튜브 광고 차단하기 - Block YouTube Ads With a Single Keystroke 2 이니스프리 이니스프리 20.06.14.10:19 162
77 [PHP] 파일을 읽어서 각 행을 리스트로 만들기 이니스프리 이니스프리 19.07.10.20:29 162