• 목록
  • 아래로
  • 위로

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

Make StudyForUs Great Again!

 

CSVpuymXAAAVVpd.jpg

댓글 0

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