반응형
파일이 있는데 파일이 얼마나 커질 지 모르겠습니다. 마지막 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
반응형
'파이썬' 카테고리의 다른 글
파이썬 OpenCV 및 Python을 사용하여 웹캠 피드 표시 (0) | 2020.12.07 |
---|---|
파이썬 반환을 기다리지 않고 파이썬에서 프로그램을 호출하는 방법 (0) | 2020.12.07 |
파이썬 ImportError : datetime이라는 모듈이 없습니다. (0) | 2020.12.07 |
파이썬 변수에서 Tkinter 레이블 업데이트 (0) | 2020.12.07 |
파이썬 Mac에서 setuptools를 설치하는 방법 (0) | 2020.12.07 |
댓글