본문 바로가기
파이썬

파이썬 파일의 마지막 X 줄을 검색하는 가장 효율적인 방법은 무엇입니까?

by º기록 2020. 12. 7.
반응형

파일이 있는데 파일이 얼마나 커질 지 모르겠습니다. 마지막 10 줄 정도를 검색하여 문자열과 일치하는지 확인하고 싶습니다. 가능한 한 빠르고 효율적으로이 작업을 수행해야하며 다음보다 더 나은 것이 있는지 궁금합니다.

s = "foo"
last_bit = fileObj.readlines()[-10:]
for line in last_bit:
    if line == s:
        print "FOUND"

 

해결 방법

 

# Tail
from __future__ import with_statement

find_str = "FIREFOX"                    # String to find
fname = "g:/autoIt/ActiveWin.log_2"     # File to check

with open(fname, "r") as f:
    f.seek (0, 2)           # Seek @ EOF
    fsize = f.tell()        # Get Size
    f.seek (max (fsize-1024, 0), 0) # Set pos @ last n chars
    lines = f.readlines()       # Read to end

lines = lines[-10:]    # Get last 10 lines

# This returns True if any line is exactly find_str + "\n"
print find_str + "\n" in lines

# If you're searching for a substring
for line in lines:
    if find_str in line:
        print True
        break

 

참조 페이지 https://stackoverflow.com/questions/260273

 

 

반응형

댓글